赞
踩
因为要换服务器了,所以要把上一个服务器里的东西都换到新买的服务器里,在进行数据库迁移的时候出现了点小问题,就是navicat报了Got a packet bigger than‘max_allowed_packet’bytes错误,看了下别人的文章,然后解决了,下面把解决方法说一下
今天将博客的数据库进行了迁移,在执行sql脚本的时候报了Got a packet bigger than‘max_allowed_packet’bytes的错误,上网搜了一下,发现是由于max_allowed_packet的值设置过小的原 因,知道原因就好办了,只需要将max_allowed_packet值设置大一点就OK了。
第一步:在navicat界面点击F6进入mysql的控制台页面,输入:mysql>show VARIABLES like '%max_allowed_packet%';回车来查看最大值,然后就可以看到
++——————–+———+
| Variable_name | Value |
+——————–+———+
| max_allowed_packet | 1048576 |
+——————–+———+
说明现在最大值是1M,太小了,所以我们要对他的值进行重新设置
第二步:输入命令:set global max_allowed_packet = 210241024*10;回车,然后退出登录
第三步:重新登录后输入第一步的命令再次查看他的值
+--------------------+------------+
| Variable_name | Value |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set
发现值已经发生了变化,这样就OK了
注意:max_allowed_packet 针对的是一个事务中的一行记录大小,当一行记录超过了限制的大小,将会报错。sql文件中每次insert完进同一张表的所有数据被称为一个数据包(packet),max_allowed_packet就是来限制这个的大小的阈值,大于这个值,mysql的I/O连接会关闭,就会报这个错。还有就是,使用这种方法,重启服务器之后又恢复默认值了。这里博主只是导数据的时候临时将其值设置大一点,导完之后尽量让其恢复原值,因为max_allowed_packet设置过大可能会导致服务器太忙来不及接收,网络差的时候也可能会出现丢包的现象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。