我经常收到“与 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 和 PHP v5.6.3,使用 Mac 端口安装。
你能帮忙解决我应该在哪里处理这个问题吗?