mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法 备份还原或数据导入报错1153:Got a packet big

这里注意下  本人 数据库配置了主从库的设置

分别位于本地服务器的0.40和0.30

0.40为主库

0.30为从库

在0.40导入运行sql文件报错 max_allowed_packet 

使用mysql> set global max_allowed_packet=1024*1024*16;

无效

更改my.ini (windows下)

找不到

安装方式不同

所以导入0.30的数据库

导入后又报错 2006 - MySQL server has gone away

这时

使用mysql> set global max_allowed_packet=1024*1024*16;

还是无效

所以找到C:\Program Files (x86)\MySQL\MySQL Server 5.0\my.ini

文件

 2.1 安装MySql服务器

  打开解压文件目录,找到后缀名为.ini的文件,复制一份更名为my.ini,使用下面的内容替换原有的内容。

  1. [mysqld]
  2. basedir=D:/Program Files (x86)/MySql # 设置mysql的安装目录
  3. datadir=D:/Program Files (x86)/MySql/data # 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data
  4. *************************分割线*******************
  5. port = 3306
  6. socket = /tmp/mysql.sock
  7. default-character-set=gbk # 设置mysql服务器的字符集
  8. skip-locking
  9. key_buffer = 16K
  10. max_allowed_packet = 1M

max_allowed_packet = 1M 修改为max_allowed_packet = 100M

这里讲解下max_allowed_packet这个概念

MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。

这里实际操作我认为运行sql时是整个sql文件的大小与这个max_allowed_packet 大小 size的比较

因为我报错的几条数据都是里有blob类型的数据 大小为6M多。

当时我配置max_allowed_packet = 30M

仍然报错2006 - MySQL server has gone away

所以有此结论也欢迎大家讨论

当然在web上执行一次save updata 时会以Server接受的数据包大小来确定。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值