错误 2020:转储表时数据包大于“max_allowed_pa​​cket”字节

Ima*_*eer 11 mysql

使用使用 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"

mysqldump:错误 2020:TICKET_ATTACHMENT在行转储表时,数据包大于“max_allowed_pa​​cket”字节:2286

我已将 /etc/my.cnf 中“max_allowed_pa​​cket”的大小增加到 1G,这是服务器设置,对于客户端设置,我通过运行以下命令进行了设置:

mysql -u -p --max_allowed_pa​​cket=1G

我已经验证在客户端和服务器端它们具有相同的值。

这是根据这个论坛发帖来检查客户端值http://forums.mysql.com/read.php?35,75794,261640

mysql> SELECT @@MAX_ALLOWED_PACKET -> ; +----------------------+ | @@MAX_ALLOWED_PACKET | +----------------------+ | 1073741824 | +----------------------+ 1 行(0.00 秒)

这是检查服务器值设置。

mysql> 显示变量

| max_allowed_pa​​cket | >

1073741824 |

我已经没有想法了,并尝试在专家交流中搜索并使用谷歌搜索解决方案,但到目前为止都没有奏效。

参考 http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

请哪位大神指教一下,谢谢。

Ima*_*eer 13

这是专家交流的回复:

你将不得不在my.cnf中的mysqldump部分下增加max_allowed_pa​​cket,默认为25M

[mysqldump] max_allowed_pa​​cket = 1G

或者,您可以使用所需的 max_allowed_pa​​cket 值调用 mysqldump。

mysqldump --max_allowed_pa​​cket=1G


小智 7

这不是“替代”。mysqldump 因在 my.cnf 中忽略此值而臭名昭著,但将其设置为命令行参数始终有效。

  • 通常人们编辑了错误的 .my.cnf 文件或忘记将选项添加到 [mysqldump] 部分并仅将其放在 [mysqld] 或 [client] 中,这就是为什么 mysqldump “不读取 .my.cnf”的原因 (4认同)

小智 5

请使用以下命令来解决您的问题。

# mysqldump --max_allowed_packet=1024M -u root -p database > dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

这将解决您的问题

注意:您可以根据需要设置最大值。这里我们以1024M为例。