我有一台运行Ubuntu 12.10和mysql 5.5的服务器。这是主要的数据库服务器,上面没有其他任何运行。我有2个网站使用过它(两个网站的流量都相当高)。
mysql服务前几天坏了。我没有遇到任何错误,只是在我重新启动服务service mysql restart
之前它无法连接。
从那以后一切都很好,直到今天早上5点。
Mysql服务再次宕机,这次出现错误
SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading authorization packet', system error: 0
所以我重新启动了服务,一切都很好。
我已经阅读了文档,其中说要将connect_timeout
全局变量增加到10。它已经在10,所以我把它增加到30。
然后5小时后,它再次下降,出现与上述相同的错误。
在我放弃使用PaaS之前,有人有什么建议吗?
这个旧的错误日志报告了许多人遇到相同的错误:错误#28359在"读取授权数据包"错误时间歇性断开连接。
MySQL建议增加connect_timeout
,然后他们关闭了这个错误,尽管许多人继续报告许多版本的MySQL的错误,即使connect_timeout
增加到更大的值,长达240秒。
在错误日志和其他地方的报告中有一些模式:
-
当网络流量高时,错误发生的次数更多。其他繁重的流量(如大型rsync)可能会导致网络数据包校验和失败。增加网络带宽似乎有所帮助。
-
据报道,通过设置
skip-name-resolve
配置选项来减少DNS流量在一个案例中有所帮助。 -
有几份报告称,使用
bind_address=127.0.0.1
的网站出现故障,当他们删除该限制时,错误就消失了。也许暗示环回以太网驱动程序有故障?我在这里推测。