Navicat 中 MySQL server has gone away 错误怎么办
MySQL 数据库出现 MySQL server has gone away 错误一般是 SQL 语句太大导致了,下面们在使用 Navicat 中操作数据库时提示 MySQL server has gone away 问题解决办法。
今天备份了一下本站的数据,生成的 SQL 文件比较大,当然这个 SQL 是包含了比较多的冗余数据。用 Navicat 直接导入的话,报错 [err] 2006 MySQL server has gone away 。
修改 Navicat 的 max_allowed_packet
打开 Navicat 的菜单中的 tools,选择 server monitor,然后在左列选择数据库,右列则点选 variable 表单项,寻找 max_allowed_packet,将其值改大。
改好之后,再次导入备份的 SQL 文件,一切正常。
其他解决方法
如果还是无法解决,下面我整理了一些 MySQL 查询中碰到 MySQL server has gone away 问题
找到你的 MySQL 目录下的 my.ini 配置文件,加入以下代码:
max_allowed_packet=500M wait_timeout=288000 interactive_timeout = 288000
自己看情况更改数值,我直接改很大,最后记得重启你的 MySQL 服务
这样的话就能很好的解决 MySQL server has gone away 问题了。
- max_allowed_packet 是 MySQL 允许最大的数据包,也就是你发送的请求;
- wait_timeout 是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时后就会现了 MySQL server has gone away #2006 错误。
max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度
如果没有修改 MySQL 权限我们可以在 PHP 程序里面,如果 php.ini 修改起来不方便,可以以下代码来尝试解决。
ini_set('mysql.connect_timeout', 300); ini_set('default_socket_timeout', 300);
在 ini_set 后,可以用 ini_get 来验证参数设置适合符合预期。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论