MySQL SELECTクエリがハングする

MySQL SELECTクエリがハングする

私のサーバーには 6 つの MySQL データベースがあります。それらはすべて、Wordpress の Web サイトを動かしています。何らかの理由で、これらのデータベースのうち 2 つにアクセスできません。私の知る限り、それらは INNODB を使用していますが、次のことさえ実行していることは確認できません。

mysql> use INFORMATION_SCHEMA;
mysql> SELECT * FROM TABLES;

がハングアップします。動作中のデータベースは問題ないようです (少なくとも Web サイトはオンラインです)。問題のあるデータベース Web サイトにアクセスしようとすると、回転し続けます。

私が以下を実行すると:

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 statusinnodb 情報の出力を確認してください。

答え2

ミューテックス/ロックが暴走したのかもしれません?

おそらく再起動すると修正されます。そうでない場合は、ロックがあるかどうかを確認し、手動で解除することができます。

試してみるSHOW FULL PROCESSLIST;

関連情報