其實遷移數據庫,一般用sql文件就行,把A服務器數據庫的表結構和數據等等導出,然后導入到B服務器數據庫,
但是這次數據文件過大,大約有40個G,使用命令行導入,效果不是很好,經常在執行過程中報錯、卡死。
最后參考網上的帖子,復制源數據庫的data目錄下的文件,完成數據遷移。
步驟如下:
1.首先要確定data目錄在哪里
這個問題困擾了我很久,因為網上的帖子大部分只是說拷貝mysql數據庫目錄下的data文件夾中的數據,但是data目錄到底在哪里,並未說明,我開始是拷貝的MySQL安裝目錄中的data文件夾,但是顯然這是錯誤的,拷貝后並未出現需要的數據庫。
2.我是整個數據庫目錄進行遷移的 原目錄 /var/lib/mysql 直接 mv或者cp過去(先停止mysqd 服務)
比如cp到 /mnt/vdb/mysql目
3.找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。命令如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數據修改之) # The MySQL server [mysqld] port = 3306 #socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”注釋此行) socket = /mnt/vdb/mysql/mysql.sock (加上此行)
[mysqld] datadir=/mnt/vdb/mysql socket=/mnt/vdb/mysql/mysql.sock
#沒有就新加 [mysql] socket=/mnt/vdb/mysql/mysql.sock [client] socket=/mnt/vdb/mysql/mysql.sock [mysqldump] socket=/mnt/vdb/mysql/mysql.sock
重啟服務如果發現/var/lib/mysql/mysql.sock錯誤就說明應該還有沒有改到。。
4.復制數據存在風險,請提前備份哦!!
