2006年:MySQL服务器已经消失


2006: MySQL server has gone away

我经常收到"与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 OS X 10.9.5,MySQL v5.6.22和使用Mac Port安装的PHP v5.6.3。

你能帮忙提出我应该在哪里处理这个问题的想法吗?

这个错误通常是在服务器超时时发生的,并且可能被连接关闭,所以可能会 http://dev.mysql.com/doc/refman/5.0/en/gone-away.html 会帮助你。

在您的 sql 配置文件中,找到属性max_allowed_packet并将其从 1M 更改为更高的属性,16M对我有用。

问候。