2006年:MySQL服务器已经消失

我得到“失去连接到MySQL服务器”和“2006:MySQL服务器已经消失”错误,以至于服务器无法使用。 有关于这个问题的问题,但没有适用于我的情况; 例如,没有networking连接(服务器通过套接字连接到同一台机器上的客户机进程),并且没有长时间的查询(机器正在运行多个CMS – mediawiki,drupal和joomla – PHPMyAdmin,但没有什么exception的查询生成,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 | +-----------------------------+----------+ 

所有其他设置是默认的除外

 query_cache_size=64MB max_allowed_packet=16M 

我也改变了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)和通过小型PHPtesting程序进行的每次访问都会失败。 不过,我仍然可以通过MySQL客户端访问MySQL服务器和数据库。

MySQL错误日志中没有错误消息。

该服务器运行在最近的Mac Mini上,使用Mac端口安装的Mac OS X 10.9.5,MySQL v5.6.22和PHP v5.6.3。

你能帮我提出一些想法来处理这个问题吗? (这个查询最初是在StackOverflow上发布的,但是我build议在这里重新发布)

[回复评论]

MYSQL现在正在显示通常的症状,所以我可以报告其状态。 对于@Nathan C, ps aux |grep mysql给出:

 _mysql 34888 0.0 6.4 4219456 1068400 ?? S 11:00pm 2:09.44 /opt/local/lib/mysql56/bin/mysqld --user=_mysql root 34887 0.0 0.0 2510772 1192 ?? Ss 11:00pm 0:00.22 /opt/local/bin/daemondo --label=mysql56-server --start-cmd /opt/local/lib/mysql56/bin/mysqld --user=_mysql ; --pid=exec root 74518 0.0 0.0 2475116 2140 s000 S+ Wed12pm 0:00.02 mysql -u root -p scs1ng 7293 0.0 0.0 2432784 616 s003 R+ 8:04pm 0:00.00 grep mysql` 

top显示:

 Processes: 247 total, 2 running, 8 stuck, 237 sleeping, 943 threads 20:10:09 Load Avg: 1.50, 1.27, 1.13 CPU usage: 0.90% user, 1.69% sys, 97.39% idle SharedLibs: 16M resident, 11M data, 0B linkedit. MemRegions: 54262 total, 4947M resident, 111M private, 1476M shared. PhysMem: 11G used (1535M wired), 5133M unused. VM: 629G vsize, 1069M framework vsize, 128(0) swapins, 199(0) swapouts. Networks: packets: 309678079/54G in, 382978367/227G out. Disks: 35242710/547G read, 72080598/1265G written. PID COMMAND %CPU TIME #TH #WQ #POR #MRE MEM RPRVT PURG CMPR VPRVT VSIZE PGRP PPID STATE UID FAULTS COW MSGS MSGR SYSBSD SYSMAC CSW PAGE KPRV KSHR IDLEW POWE 34888 mysqld 0.1 02:09.61 24 0 45 223 1021M 1021M 0B 0B 1220M 4121M 34887 34887 sleeping 74 325413 567 76 17 8737931+ 18555 1618292+ 0 -4M 27M 291795+ 0.3 

@zimmi我刚刚重新启动mysql服务器后运行mysqlreport。 输出看起来完全合情合理。 我现在再次运行它,但它无法连接:

 scs1ng$ perl5.12 mysqlreport --user root -password Password for database user root: DBI connect('host=localhost','root',...) failed: Lost connection to MySQL server at 'sending authentication information', system error: 32 at mysqlreport line 249 Died at mysqlreport line 249, <STDIN> line 1. 

查看可以应用于您的mysql错误 。

显然,你可以摆脱这个错误限制“table_open_cache”configuration更高的数字(500)