2006 年:MySQL 服务器消失了

Posted

技术标签:

【中文标题】2006 年:MySQL 服务器消失了【英文标题】:2006: MySQL server has gone away 【发布时间】:2015-02-20 19:29:47 【问题描述】:

我经常收到“丢失与 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 端口安装。

您能否提供一些想法来解决这个问题?

【问题讨论】:

你在serverfault.com上问这个问题可能会更好 我最近使用mysql_ping()mysqli_ping 修复了这个错误,但是这是在一段时间未连接到mysql 服务器后发生的。服务器会尝试创建一个新的连接 ID,因为它会在某个默认时间关闭旧连接。 【参考方案1】:

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

问候。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于2006 年:MySQL 服务器消失了的主要内容,如果未能解决你的问题,请参考以下文章

#2006 - MySQL 服务器在恢复 mysql 转储时消失了 [重复]

phpMyAdmin 中的 MySQL “#2006 - MySQL 服务器已消失”

(2006) MySQL 服务器已经消失

错误 2006 (HY000): MySQL 服务器已消失

第 406 行的 MySQL 错误 2006 (HY000):MySQL 服务器已消失

mysqli_real_connect(): (HY000/2006): MySQL 服务器已经消失