Navicat 中 MySQL server has gone away 错误怎么办

发布于 2018-05-15 10:26:42 字数 1564 浏览 3184 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文