Вопрос по mysql – Удаление таблицы приводит к зависанию MySQL

18

Когда я пытаюсь удалить таблицу, MySQL зависает. У меня нет никаких других открытых сессий. Как решить это? Я ждал 10 часов, и процесс не прекратился.

Я добавил вывод журнала. cool_cs
Можете ли вы запустить эту 2 команду и поставить результат. 1.show innodb status\G и 2.show processlist, также,show open tables; Rahul
пожалуйста, опубликуйте результат SHOW ENGINE INNODB STATUS, если база данных находится под innodb, конечно Sebas
похоже, что таблица, которую вы пытаетесь удалить, уже используется (ну, я имею в виду, что она заблокирована каким-то другим процессом) и, следовательно, она ожидает принятия процесса. Rahul
@cool_cs, какую версию mysql вы используете? Это похоже на ошибку в старой версии mysql (версия mysql: 4.1.22, 4.1.24). видеть это:bugs.mysql.com/bug.php?id=31937 Rahul

Ваш Ответ

2   ответа
13

но у меня это сработало:

sudo /etc/init.d/mysql restart
mysqladmin drop YOURDATABASE
Error: User Rate Limit Exceeded
mysql.server restartError: User Rate Limit Exceeded
16
Waiting for table metadata lock
drop table tableA name

SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10

эта ссылка

у вас неявный тупик. Убейте другие транзакции, чтобы разблокировать сброс, или убейте сброс, чтобы освободить другие транзакции.

Ты можешь использоватьУБИЙСТВО thread_id, в sql_plus.

Я добавляю дополнительную информацию, поскольку у меня появился еще один интересный опыт.

Metadata В равной степени могут возникать мертвые блокировки между операцией ddl для данной таблицы (drop, alter...) иselect запрос на эту таблицу.

Да,select.

Таким образом, если вы зацикливаете курсор в MySQL (или PHP, например, сpdo::fetch), и вы запустите оператор ddl для тех же таблиц, вы получите тупик.

Одним из решений этого нетипичного сценария является освобождение неявных блокировок с помощьюcommit оператор систематически после любого выбора оператора полностью извлекается.

Error: User Rate Limit Exceeded cool_cs
Error: User Rate Limit Exceeded cool_cs
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded cool_cs

Похожие вопросы