其實遷移資料庫,一般用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.複製資料存在風險,請提前備份哦!!