Mysql
如何轉儲大型數據庫?
我嘗試通過
mysqldump
. 該數據庫有數百萬行,總大小為 1.3TB。CREATE TABLE PageContents ( ID int(11) unsigned, Added date, Text MEDIUMTEXT, FOREIGN KEY(ID) REFERENCES AllPages(ID) ON DELETE CASCADE, PRIMARY KEY(ID) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci KEY_BLOCK_SIZE=1;
但我在傾倒 8 小時後收到錯誤消息:
mysqldump: Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `PageContents` at row: 20946782
我增加
max_allowed_packet
了mysql.cnf
max_allowed_packet = 16G
首先,確保您已在配置文件
max_allowed_packet
的相應部分中進行了設置,並且它不超過1G的最大值:[mysqldump]``my.cnf
[mysqldump] max_allowed_packet=1G
或者您也可以在執行時指定它(無需更改 my.cnf):
mysqldump --max-allowed-packet=1G ...
您可以添加
max_allowed_packet=512M
到您的mysqldump
命令。或添加
max_allowed_packet=512M
到[mysqldump]
您的部分my.cnf
[mysqldump]
注意:如果不在該部分下,它將不起作用