我尝试通过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
或者您也可以在运行时指定它(无需更改 my.cnf):
您可以添加
max_allowed_packet=512M
到您的mysqldump
命令。或添加
max_allowed_packet=512M
到[mysqldump]
您的部分my.cnf
[mysqldump]
注意:如果不在该部分下,它将不起作用