MySQL-为什么会出现MySQL server has gone away这样的错误?如何解决?

发布于 2017-08-10 20:03:29 字数 125 浏览 1189 评论 2

在应用程序日志中,我发现总有一些“MySQL server has gone away”这样的错误信息,但是检查数据库日志又并没有像它描述那样真的gone away,请问这种错误是如何产生的呢?怎么解决这个问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-09-25 23:50:05

原因有二:

1.空闲等待超时,最常见的原因
- 修改wait_timeout值
- 增加超时自动重连,使用mysql_ping()

2.通信缓冲区太小
- 修改MySQL的max_allowed_packet值

虐人心 2017-09-17 18:50:06

与该问题重复问题 @MySQL语句过大引起MySQL server has gone away下的答案

你可以调大max_allowed_packet或将较大的信息分多次存入数据库。推荐给你一篇文章,MySQL server has gone away 问题的解决方法

在my.ini文件中添加或者修改以下两个变量:

wait_timeout=2880000
interactive_timeout = 2880000

关于两个变量的具体说明可以google或者看官方手册。

如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:

sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文