Navicat导入表只能导入2 30行,超过就会报错2006 - MySQL server has gone away,而且另一台电脑可以正常导入,请问是什么原因造成的,感谢
另一台电脑用的是否是同意数据库,Navicat版本是否相同?
方式1:找到mysql安装目录下的my.ini配置文件,加入以下代码:
max_allowed_packet=500M
wait_timeout=288000
interactive_timeout = 288000
三个参数注释如下:
max_allowed_packet是mysql允许最大的数据包,也就是你发送的请求;
wait_timeout是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时后就会现了MySQL server has gone away #2006错误。
interactive_timeout参数的作用是,用来控制其通信缓冲区的最大长度。
方式二:修改Navicat配置
打开navicat的菜单中的tools,选择server monitor,然后在左列选择数据库,右列则点选variable表单项,寻找max_allowed_packet,将其值改大。
如果是汉化版中:在菜单中,工具-->服务器监控-->在左侧数据库列表前打勾-->在右侧变量中找到max_allowed_packet,改大这个值,如9999999999
希望能帮助到你
MySQL 连接超时
MySQL 的连接开启后,很久没有发起新的查询请求,达到了 server 端的超时时间,被 server 端强制关闭连接。此时若该连接再次发起请求时,则会报错 MySQL server has gone away 。此种情况比较常见,一般一个执行时间很长的脚本,开启连接查询部分数据后,进行计算或者请求第三方,在进行数据写入,写入时超时。
可以通过如下命令查看当前 MySQL 的超时时间,
mysql> show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
可以通过如下命令临时修改超时时间,
mysql> set global wait_timeout = 60 * 60 * 8;
如要长期生效,则需要修改数据库配置文件,并重启 MySQL 服务。
wait_timeout = 28800
interactive_timeout = 28800
有可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,只要修改my.cnf,加大max_allowed_packet的值即可。
修改 Navicat的设置:
英文版: Tools->Server Monitor->MySQL->Variables->max_allowed_packet;
中文版:工具->服务器监控->MySQL->变量->找到 max_allowed_packet 修改
记得要选选择你要先在左边打勾数据库服务器
像这样:
这个错误是断开连接了吧
90%是版本问题,不是navicat就是mysql
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。在my.ini把超时时间改长一点,然后重启mysql。如果在别的电脑可以,自己的电脑就出现这样的情况,建议把你的mysql卸载了,重新安装,卸载的时候切记要删除注册表。正常来说导几w都没有问题的,还有你看一下自己电脑的配置,如果是配置不太好数据量多可能会卡死甚至闪退,以上方法可以试试。
另一台电脑可以正常导入,说明MySQL应该没有问题,可以重装一下Navicat试一下!
是不是SQL脚本当前电脑编码设置问题,导致导入报错
超时时间断了,是不是可以加个睡眠时间,
不是mysql的问题,是你的工具到服务器之间的通信断掉了,检查下本地的客户端的情况。
https://blog.csdn.net/qq_38322240/article/details/80406184
你查看一下这个 应该可以解决你的问题
主要是配置文件 的问题 建议修改前先拷贝一份 解决不了的话改回来
记住重启啊