WordPress - MySQL服务器已经消失

时间:2014-01-22 12:30:59

标签: mysql database wordpress timeout database-connection

我在具有良好内存(超过8GB)的专用服务器上安装了WordPress。

WordPress安装包含许多插件--50个活动插件。最值得注意的是WPML插件,使WordPress多语言。主题是Weaver II Pro

堆栈是LAMP - CentOS 6.3,Apache 2.4.4,Percona MySQL,PHP-FPM。

我一直很愚蠢,并没有设置测试或登台服务器。

一直运行正常,直到我更新到WordPress 3.8,并同时更新了几个插件。

当时我没有注意,但我的所有小工具都搞砸了,任何导航等都是如此。

我启用了error_log,即

ini_set('log_errors',TRUE);
ini_set('error_reporting', E_ALL);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

这导致了一个巨大的文件 - 基本上error_log每4分钟左右增长一个GB。

我在错误日志中发现的主要错误是数据库服务器断开连接,更好地称为

  

MySQL服务器已经消失

首要任务是修补问题。所以我安装了Database Ping插件。这大多是,虽然没有完全解决问题。许多小部件都回来了。

但是,特殊(非英语)字符全部混乱(转换为问号)。我尝试通过打开wp-mysql-ping.php并注释掉

来解决这个问题
if ( !DB_CHARSET && version_compare(mysql_get_server_info($this->dbh), '4.1.0', '>='))
                                    {
                                        $this->query("SET NAMES '" . DB_CHARSET . "'");
                                    }

没有帮助。

此外,该插件不是永久或完整的解决方案。因此,让网站处于混乱状态,我开始研究其他可能性:

根据Rackspace的建议,我编辑了my.cnf以添加

wait_timeout = 60

没有帮助。

还为my.cnf添加了缓存

query_cache_type = 1
query_cache_limit = 8M
query_cache_size = 512M

没有帮助。

(是的,我每次编辑my.cnf时都重启了mysql)

还尝试了方法suggested here: 在wp-db.php中 前

$this->select( $this->dbname, $this->dbh );

我添加了

$this->query("set session wait_timeout=600" );

没有帮助。

我的智慧结束了。请帮忙!

1 个答案:

答案 0 :(得分:1)

在my.cnf中添加了max_allowed_pa​​cket = 16M并重新启动了mysql。这修复了数据库超时错误。