MySQL 导入sql 错误 Got a packet bigger than 'max_allowed_packet' bytes

在测试mysql备份文件是否可正常还原时,即将备份文件还原到另一台服务器实例上,出现了一系列的错误。


其中的错误如下:

[Err] 1153 - Got a packet bigger than 'max_allowed_packet' bytes

[Err] 1046 - No database selected

[Err] 1231 - Variable 'collation_connection' can't be set to the value of 'NULL'

………………


原因:

主要为第一个错误。导入数据包大于系统设置的 max_allowed_packet 大小。


还原的实例版本为 :mysql 5.7.13-log

默认 max_allowed_packet  大小为:4M


在 mysql 中,1个 sql 语句发送到 MySQL 服务器,1行数据发送到客户端,或者二进制日志从 master 发送到 slave ,这些都作为一个包,(mysql 5.7 最大包为 1GB)。而我的备份脚本中,有的表字段类型为 longtext,其插入的比较长,才导致了错误。


解决方法:

4M 既然不够,那就设置 20 MB 吧。


查看当前 max_allowed_packet 大小:

show variables like 'max_allowed_packet';  
show variables where Variable_name = 'max_allowed_packet';

在命令行设置全局变量,新的连接立即生效:(windows 中写字节大小)

set global max_allowed_packet = 20*1024*1024;

同时在配置文件中添加以下参数:

max_allowed_packet = 20M


参考:Packet Too Large


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值