Назад | Перейти на главную страницу

MySQL запрос SELECT зависает

На моем сервере 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 |

В соответствии с документация mysql, состояние «открывающиеся столы» не должно быть видно, если на пути не мешают блокировки или когда ваш table_open_cache очень маленький.

Проверьте журнал ошибок mysql, чтобы узнать, что произошло, проверьте show engine innodb status вывод для информации innodb.

Может быть, мьютекс / блокировка сошла с ума?

Наверное перезагрузка исправит. В противном случае вы можете проверить наличие замков и разблокировать их вручную.

Попробуйте с SHOW FULL PROCESSLIST;