使用 mysqldump 进行备份的 ZRM 备份时出现上述错误。
mysqldump --opt --extended-insert --single-transaction --create-options --default-character-set=utf8 --user=" " -p --all-databases > "/nfs/backup/mysql01/ dailyrun/20091216043001/backup.sql"
TICKET_ATTACHMENT
mysqldump:错误 2020:在第 2286 行转储表时,数据包大于“max_allowed_packet”字节
我在 /etc/my.cnf 中将“max_allowed_packet”的大小增加到 1G,这是服务器设置,对于客户端设置,我通过运行以下命令进行了设置:
mysql -u -p --max_allowed_packet=1G
而且我已经验证在客户端和服务器端它们具有相同的值。
这是根据此论坛发布的http://forums.mysql.com/read.php?35,75794,261640检查客户端值
mysql> 选择@@MAX_ALLOWED_PACKET -> ; +------------------------+ | @@MAX_ALLOWED_PACKET | +------------------------+ | 1073741824 | +------------------------+ 1 行在集合中(0.00 秒)
这是检查服务器值设置。
mysql> 显示变量
| max_allowed_packet | >
1073741824 |
我已经没有想法了,并尝试在专家交流中搜索并在谷歌上搜索解决方案,但到目前为止都没有奏效。
参考 http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html
请哪位大神指教一下,谢谢。
这是专家交流的回复:
您将不得不增加 my.cnf 中 mysqldump 部分下的 max_allowed_packet,默认为 25M
[mysqldump] max_allowed_packet = 1G
或者,您可以使用所需的 max_allowed_packet 值调用 mysqldump。
mysqldump --max_allowed_packet=1G
这不是“替代”。mysqldump 因忽略 my.cnf 中的此值而臭名昭著,但将其设置为命令行参数始终有效。
请使用以下命令解决您的问题。
这将解决您的问题
注意:您可以根据需要设置最大值。这里我们以 1024M 为例。
您可能需要在几个地方解决这个问题:在命令行上,在 my.cnf 的 [mysqld] 部分和 my.cnf 的 [mysqldump] 部分。我只是在与这个作斗争,最后通过将所有这些设置为 2G 来让它工作。我有一种偷偷摸摸的怀疑,最低的人会赢……