我得到'丢失与MySQL服务器的连接'和'2006:MySQL服务器已经消失'错误,因此服务器无法使用。在SO中有关于这个问题的问题,但没有一个适用于我的情况;例如,没有网络连接(服务器通过套接字连接到同一台机器上的客户端进程)并且没有长查询(该机器正在运行许多CMS - mediawiki,drupal和joomla - 和PHPMyAdmin,但生成的查询没有什么特别之处,AFAIK)。
我已将所有超时时间增加到必须足够的程度:
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 60 |
| delayed_insert_timeout | 300 |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 6000 |
| net_write_timeout | 6000 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
| max_allowed_packet | 16777216 |
+-----------------------------+----------+
我还将php.ini中的connect_timeout设置更改为无限制:
; Maximum time (in seconds) for connect timeout. -1 means no limit
; http://php.net/mysql.connect-timeout
mysql.connect_timeout = -1
重新启动服务器会将问题清除几个小时。之后,每次通过CMS(即通过PHP)和一个小型PHP测试程序进行访问都会失败。但是,我仍然可以通过MySQL客户端访问MySQL服务器和数据库。
MySQL错误日志中没有错误消息。
服务器在最近的Mac Mini上运行,使用Mac端口安装Mac OS X 10.9.5,MySQL v5.6.22和PHP v5.6.3。
你能帮我找到解决这个问题的想法吗?
答案 0 :(得分:0)
此错误通常发生在服务器超时且可能通过连接关闭时,因此http://dev.mysql.com/doc/refman/5.0/en/gone-away.html可能会对您有所帮助。
答案 1 :(得分:0)
在您的 sql 配置文件中,找到属性 max_allowed_packet
并将其从 1M 更改为更高的值,16M
对我有用。
问候。