关于wordpress后台[MySQL server has gone away]错误的解决方法
最近遇上了一个棘手的问题。在登录blog后台时,dashboard刷不出来,经过漫长的等待之后,就会在页面上方出现大量类似下面:
WordPress database error: [MySQL server has gone away]
SELECT option_value FROM wp_options WHERE option_name =
'rss_7fa2a8a86445b4b003f10277b5390f55_ts' LIMIT 1
的错误提示。
在Google上找了很久,大多判定为是由于dashboard要读取technorati、wordpress.org等地方的rss,但是technorati已经被封所以导致mysql链接长时间无法响应。又因为本身数据库的“wait_timeout ”设的很短(如果是虚拟主机,那大多数情况下你是没有办法调整的),所以出现了“gone away”的错误。但我查看源文件后发现,现在后台读取的是blogsearch.google.com的rss,而google的应该是连的通的。而且,即使我注释掉了这几条,问题依然得不到解决。那看来问题可能不是出在rss上。
那么最值得怀疑的就是那些插件了,只是现在后台更本无法运作,要么删除所有插件,要么先找办法让后台运作起来。我选择了后者。
还好有全能的Google大神,带我找到了这个地方。下载其中修改过的wp-db.php文件来替换站点上的源文件(记得备份原文件),果然后台可以用了。其中的思路是,既然mysql服务器一段时间没响应会自动关闭,那即使在没操作的时候仍通过命令来不断的ping数据库,从而得到持续的链接。
能用后台之后,进入插件页面,升级所有可以升级的插件。页面速度一下子变快了,再替换回原来的wp-db.php,一切正常。Okay,“gone”问题解决了。只是,我仍然不太清楚是哪个插件导致了这个问题的产生。
如果你觉得手动下载插件,再手动上传之类的比较烦,推荐这个one-click-plugin-updater插件自动更新插件。当然,常常备份数据库是绝对不能忘记的工作。








