我的服务器上有 6 个 MySQL 数据库。它们都为 Wordpress 网站提供支持。出于某种原因,其中 2 个数据库无法访问。据我所知,它们使用 INNODB,但我无法确认它甚至做了以下事情:
mysql> use INFORMATION_SCHEMA;
mysql> SELECT * FROM TABLES;
挂在我身上。工作数据库似乎没问题(至少网站在线)。当我尝试访问坏数据库网站时,它只会继续旋转。
如果我这样做:
mysql> use rbb;
mysql> SELECT * FROM wp_posts;
它就会挂起。
我的服务器运行的是 CentOS 6.2,到目前为止没有遇到任何问题。
任何指点都将不胜感激。我不知道下一步该做什么。
即使打开 Sequel Pro 到服务器也会挂起应用程序。
如果我尝试查询,然后在另一个连接中检查进程列表,它会显示:
+----+------+-----------+-----+---------+------+----------------+------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+-----+---------+------+----------------+------------------------+
| 10 | root | localhost | rbb | Query | 45 | Opening tables | SELECT * FROM wp_users |
答案1
根据mysql 文档,除非有锁阻碍,或者你的table_open_cache
空间太小,否则不应该看到“打开表格”状态。
检查 mysql 的错误日志以了解发生了什么,检查show engine innodb status
输出中的 innodb 信息。
答案2
也许互斥锁/锁发生了失控?
重启可能可以解决问题。否则,您可以检查是否有任何锁并手动释放它们。
尝试SHOW FULL PROCESSLIST;