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 中 MySQL server has gone away 错误怎么办

修改 Navicat 的 max_allowed_packet

打开 Navicat 的菜单中的 tools,选择 server monitor,然后在左列选择数据库,右列则点选 variable 表单项,寻找 max_allowed_packet,将其值改大。

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

改好之后,再次导入备份的 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 来验证参数设置适合符合预期。

以上是 Navicat 中 MySQL server has gone away 错误怎么办 的全部内容, 来源链接: utcz.com/p/231861.html

回到顶部