萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 關於MySQL數據遷移--data目錄直接替換注意事項的詳解

關於MySQL數據遷移--data目錄直接替換注意事項的詳解

近日更換服務器,要做數據庫遷移,將數據庫內的數據從服務器A遷移到服務器B。
由於數據量較大,直接做dump耗時太長,故而采用如下方式處理:
首先,在服務器B上安裝了與服務器A同版本的MySQL,停止MySQL服務,將安裝後的data目錄刪除;
然後,服務器A鎖住全部表,從服務器A將整個data目錄和數據文件直到拷貝到服務器B上,修改服務器B上MySQL的my.cnf文件中的datadir指向新的data目錄。
最後,啟動服務器B上的MySQL服務。
結果啟動失敗,報出 “無法啟動MySQL服務”異常,查看錯誤日志,發現問題描述如下:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 63963136 bytes
InnoDB: than specified in the .cnf file 0 6291456 bytes!
這段信息的意思是日志文件比my.cnf中設置的日志文件配額要大,服務不能啟動。原因是日志文件從服務器A復制而來,在服務器A上的my.cnf中日志配額要比服務器B上的my.cnf日志配額大,
計算日志文件大小:63963136/(1024*1024)=61M,6291456/(1024*1024)=6M,怪不得呢?
將服務器B上的my.cnf中的innodb_log_file_size的參數設置為61M,再次啟動mysql,啟動成功。

總結需要注意事項:
1.修改datadir為新的data目錄。
2.合理修改innodb_log_file_size的值為實際遷移過來的日志文件大小。
3.字符集/默認引擎的修改,要與遷移前統一。

copyright © 萬盛學電腦網 all rights reserved