mysql服務器數據遷移(Mysql遷移)

本文目錄一覽:

如何遷移MySQL數據庫

caching_sha2_password認證插件提供更多的密碼加密方式,並且在加密方面具有更好的表現,目前MySQL 8.0選用caching_sha2_password作為默認的認證插件,MySQL 5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL 8.0的加密認證方式,最終導致連接問題。

MySQL存儲引擎現在負責提供自己的分區處理程序,而MySQL服務器不再提供通用分區支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分區處理程序的存儲引擎。 如果分區表用的是別的存儲引擎,存儲引擎必須進行修改。要麼將其轉換為InnoDB或NDB,要麼刪除其分區。通過MySQLdump從5.7獲取的備份文件,在導入到8.0環境前,需要確保創建分區表語句中指定的存儲引擎必須支持分區,否則會報錯。

MySQL 8.0的默認字符集utf8mb4,可能會導致之前數據的字符集跟新建對象的字符集不一致,為了避免新舊對象字符集不一致的情況,可以在配置文件將字符集和校驗規則設置為舊版本的字符集和校驗規則。

MySQL 8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動服務器會引入與標識符的排序和比較方式不一致的問題。

 lower_case_table_names 

要避免MySQL 8.0上的啟動失敗,MySQL配置文件中的sql_mode系統變量不能包含NO_AUTO_CREATE_USER。

從MySQL 5.7.24和MySQL 8.0.13開始,MySQLdump從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLdump創建的轉儲文件,以刪除NO_AUTO_CREATE_USER。

在MySQL 8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的複製場景中,如果語句使用到廢棄的SQL Mode會導致複製異常。

在執行到MySQL 8.0.3或更高版本的in-place升級時,BACKUP_ADMIN權限自動授予具有RELOAD權限的用戶。

本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、數據庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。

mysql有沒有好的據庫之間數據轉移的方法或思路呢?

gh-ost 是 GitHub 發佈的一款用於 MySQL 的無觸發器在線模式遷移解決方案。它是可測試的,並提供暫停,動態控制/重新配置,審計和許多操作特權。它在整個遷移過程中,對主服務器產生的工作量很少,與已遷移表上的現有工作分離。

gh-ost與所有現有的在線模式更改工具都以類似的方式操作:它們以與原始表相似的方式創建幽靈表,將數據從原始表緩慢且增量地複製到幽靈表,同時應用正在進行的更改(INSERT,DELETE,UPDATE)到幽靈表。最後,在適當的時候,它用幽靈表替換了原始表。gh-ost使用相同的模式。但是,它與所有現有工具的不同之處在於不使用觸發器。取而代之的是,gh-ost使用二進制日誌流捕獲表的更改,然後將其異步應用到幽靈表。

gh-ost 承擔一些其他工具留給數據庫執行的任務。gh-ost 可以更好地控制遷移過程;可以真正暫停它;可以真正將遷移的寫入負載與主服務器的工作負載分離。此外,它還提供了許多可操作的特權,使其更安全、可信賴且易於使用。

怎樣用命令行把MySQL數據庫遷移到另一台Linux服務器

1、用dump命令備份數據庫。

# mysqldump -u root -p dbfile dbfile.sql

2、用rsync從新服務器獲得備份的文件(SCP或WGET也可以)。

# rsync -avr root@myolddbserver:/home/mydumpfolder/dbfile.sql

3、登陸新服務器的mysql客戶端。

# mysql -u root -p

4. 建立數據庫。

mysql create database dbfile;

5. 選擇新數據庫;

mysql use dbfile;

6. 加載數據;

mysql source dbfile.sql

或者

在Mysql程序中有我自己的一個數據庫共5張表,裡邊數據不算太多。我現在想把他們全部弄到另一台電腦中去,該怎麼弄,如果不用其它的軟件工具,只用Mysql自已的程序不知可否?

註:不用考慮操作系統。

—————————————————————

在dos命令提示符下使用mysqldump命令進行備份.

如下:

C:\Documents and Settings\Administratormysqldump yinshi c:\\backup.txt -uroot

-p12142022

說明:yinshi是我的數據庫名,裏面有5張表; c:\\backup.txt 是我備份出來文件名和路徑;

-u,-p參數後面跟的分別是用戶名和密碼.

將你備份出來的文件我這裡是backup.txt拷貝到另一台機上,再在dos命令提示符下用mysql命令,進行恢復,如下:

C:\Documents and Settings\Administratormysql c:\\backup.txt -uroot -p12142022

or

mysqlsource backup.txt;(這裡backup.txt在放在data目錄下)

—————————————————————

如果另一台機器上也安裝了mysql,可以直接導入

C:\mysql\binmysqldump -h172.20.6.250 -udeveloper -p123456 –opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename

172.20.6.250源服務器ip

developer源服務器連接用戶名

—————————————————————

有兩種辦法。

1、在B機器上裝mysql。

將A機器上的mysql/data下的你的數據庫目錄整個拷貝下來。

將B機器上的mysql服務停止。

找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。

2、使用SQL語句備份和恢復

你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢複數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。

語法:

SELECT * INTO {OUTFILE | DUMPFILE} 』file_name』 FROM tbl_name

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 』file_name.txt』 [REPLACE | IGNORE]

INTO TABLE tbl_name

SELECT … INTO OUTFILE 』file_name』

如何複製MySQL數據庫或表到另外一台服務器

使用這種方法前,我們需要先下載一個MySQL客戶端工具SqlYog。點擊這裡下載並安裝

下面我們開始複製數據庫:

1、打開SqlYog community Edition,分別在不同的選項卡中打開源數據庫服務器與目標數據庫服務器,這一點很重。

在源數據庫服務器選項卡中你將看到所有數據庫列表。

2、在需要複製遷移的數據庫上右擊,在彈出菜單中選擇「Copy Database to Different Host/Database」

3、在彈出對話框中,我們能看到源數據庫服務器及目標服務器,在左邊,通過勾選複選框來選擇需要複製遷移的對象,如表、函數、觸發器等,也可以選擇所有對象。

4、在右邊選擇需要遷移的目標服務器或數據庫

5、根據你的需要選擇複製類型:「Structure and Data」或「Structure only」,即「結構和數據」或「僅結構」。

6、選擇結束後點擊「Copy」按鈕開始複製,知道數據遷移結束。

mysql5.1的數據庫如何遷移至mysql5.7?

安全的辦法是在舊環境導出表數、在新環境建立數據庫後導入表,可以使用SQL或者TXT為中間文件。

Mysql數據遷移

caching_sha2_password認證插件提供更多的密碼加密方式,並且在加密方面具有更好的表現,目前MySQL 8.0選用caching_sha2_password作為默認的認證插件,MySQL 5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL 8.0的加密認證方式,最終導致連接問題。

MySQL存儲引擎現在負責提供自己的分區處理程序,而MySQL服務器不再提供通用分區支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分區處理程序的存儲引擎。 如果分區表用的是別的存儲引擎,存儲引擎必須進行修改。要麼將其轉換為InnoDB或NDB,要麼刪除其分區。通過MySQLdump從5.7獲取的備份文件,在導入到8.0環境前,需要確保創建分區表語句中指定的存儲引擎必須支持分區,否則會報錯。

MySQL 8.0的默認字符集utf8mb4,可能會導致之前數據的字符集跟新建對象的字符集不一致,為了避免新舊對象字符集不一致的情況,可以在配置文件將字符集和校驗規則設置為舊版本的字符集和校驗規則。

MySQL 8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動服務器會引入與標識符的排序和比較方式不一致的問題。

 lower_case_table_names 

要避免MySQL 8.0上的啟動失敗,MySQL配置文件中的sql_mode系統變量不能包含NO_AUTO_CREATE_USER。

從MySQL 5.7.24和MySQL 8.0.13開始,MySQLdump從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLdump創建的轉儲文件,以刪除NO_AUTO_CREATE_USER。

在MySQL 8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的複製場景中,如果語句使用到廢棄的SQL Mode會導致複製異常。

在執行到MySQL 8.0.3或更高版本的in-place升級時,BACKUP_ADMIN權限自動授予具有RELOAD權限的用戶。

本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、數據庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。

原創文章,作者:ZH95Y,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/130833.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZH95Y的頭像ZH95Y
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • STUN 服務器

    STUN 服務器是一個網絡服務器,可以協助網絡設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 服務器做詳…

    編程 2025-04-29

發表回復

登錄後才能評論