![Google Compute Engine 上出现神秘的“建立数据库连接时出错”错误消息](https://linux22.com/image/691048/Google%20Compute%20Engine%20%E4%B8%8A%E5%87%BA%E7%8E%B0%E7%A5%9E%E7%A7%98%E7%9A%84%E2%80%9C%E5%BB%BA%E7%AB%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E6%97%B6%E5%87%BA%E9%94%99%E2%80%9D%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF.png)
我在 Google Compute Engine 实例上运行 Wordpress。操作系统是 Debian,数据库是 MySql 5.5.4.6,php 5.6.14...
今天早些时候,我注意到我的网站使用了 90% 的 CPU。我试图通过从 Google 云平台控制台打开 Google ssh shell 进行调查,但无法成功。检查了串行输出日志,看到一条消息,表明磁盘已满,这阻止了我登录。由于在 Debian 上运行,我将 SSD 持久磁盘上的分配空间从 10GB 增加到了 50GB。我检查了文件系统,看到了 50GB。我重新启动了应用程序实例,并在主题行中收到了错误。然后我重新启动了数据库实例和应用程序实例,但这仍然没有清除错误。wp-config.php 文件中的数据库凭据自两天前正常工作以来没有改变。当我尝试使用 root 及其密码从命令行访问 mysql 时,我收到错误 1040“连接过多”...当我尝试命令 mysql status 时,我收到相同的错误 1040...我不知道是什么导致了这个问题——可能是某种缓存问题吗?对于如何进行有什么建议吗?
谢谢!
答案1
为了GCE Debian 操作系统,使用 Google Cloud Console 或命令更改磁盘大小后gcloud
,需要重新启动虚拟机才能自动执行磁盘大小调整。重新启动后,通过 SSH 连接到虚拟机并使用df -h
命令验证磁盘大小。
关于Too many connections
错误,由于资源不足,您的数据库可能有过多的半开连接需要终止。重新启动虚拟机也应该可以解决此问题。
答案2
myisamchk
您的 MySQL 很可能在磁盘空间耗尽时错误关闭。如果您使用 MyISAM 表,则需要使用工具修复数据库:
myisamchk -r /path/to/database/*.MYI
对于 InnoDB 表,您可以使用以下说明http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
答案3
我最近遇到了类似的问题,当我尝试在浏览器中查看 wordpress 网站时,我收到了“错误建立数据库连接”错误消息。为了解决这个问题,我登录了我的 Google Compute Engine 并停止了虚拟机,然后在它停止后再次启动它,奇迹般地它工作了,我的网站又恢复了运行