Отбрасывание таблицы заставляет MySQL зависать
Когда я пытаюсь удалить таблицу, MySQL зависает. У меня нет других открытых сеансов. Как это решить? Я ждал 10 часов, и процесс не прекратился.
Ответы
Ответ 1
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
Если это ваша таблица, смотрите эту ссылку
у вас неявный тупик. Убейте другие транзакции, чтобы разблокировать сброс, или убейте сброс, чтобы освободить другие транзакции.
Вы можете использовать KILL thread_id, в sql_plus.
Я добавляю дополнительную информацию, поскольку у меня появился еще один интересный опыт.
Metadata
Мертвые блокировки могут также происходить между операцией ddl для данной таблицы (drop
, alter
...) и запросом выбора для этой таблицы.
Да, select
Таким образом, если вы pdo::fetch
курсор в mysql (или php, например, с помощью pdo::fetch
) и запустили оператор ddl для тех же таблиц, вы получите тупик.
Одним из решений этого нетипичного сценария является систематическое снятие неявных блокировок с помощью оператора commit
после того, как какой-либо оператор select полностью извлечен.
Ответ 2
Перезапуск MySQL может быть не самым красивым решением, но он работал у меня:
sudo /etc/init.d/mysql restart
mysqladmin drop YOURDATABASE
Ответ 3
Я пытаюсь легче ответить для новичков, как я:
1) запустить:
SHOW PROCESSLIST
если вы получите что-то вроде:
+----+-----------------+-----------------+--------+------------+-----------+---------------------------------+---------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+--------+------------+-----------+---------------------------------+---------------------------------------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 580410103 | Waiting on empty queue | NULL |
| 13 | root | localhost:50627 | airbnb | Sleep | 10344 | | NULL |
| 17 | root | localhost:50877 | NULL | Query | 2356 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'characteristics' |
| 18 | root | localhost:50878 | airbnb | Query | 2366 | Waiting for table metadata lock | DROP TABLE 'airbnb'.'characteristics' |
| 21 | root | localhost:51281 | airbnb | Query | 2305 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'bed_type' |
| 22 | root | localhost:51282 | airbnb | Query | 2301 | Waiting for table metadata lock | SHOW INDEXES FROM 'airbnb'.'characteristics' |
| 23 | root | localhost:51290 | airbnb | Query | 2270 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'property_type' |
| 24 | root | localhost:51296 | airbnb | Query | 2240 | Waiting for table metadata lock | SHOW INDEXES FROM 'airbnb'.'property_type' |
| 26 | root | localhost:51303 | NULL | Query | 2212 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'characteristics' |
| 27 | root | localhost:51304 | NULL | Query | 2218 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'bed_type' |
| 29 | root | localhost:51306 | NULL | Query | 2176 | Waiting for table metadata lock | SHOW INDEXES FROM 'airbnb'.'characteristics' |
| 30 | root | localhost:51308 | NULL | Query | 2122 | Waiting for table metadata lock | DROP TABLE 'airbnb'.'characteristics' |
| 34 | root | localhost:51312 | NULL | Query | 2063 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'characteristics' |
| 35 | root | localhost:51313 | NULL | Query | 2066 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'bed_type' |
| 39 | root | localhost:51338 | NULL | Query | 2004 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'characteristics' |
| 40 | root | localhost:51339 | NULL | Query | 2008 | Waiting for table metadata lock | SHOW FULL COLUMNS FROM 'airbnb'.'bed_type' |
| 45 | root | localhost | airbnb | Field List | 997 | Waiting for table metadata lock | |
| 46 | root | localhost | airbnb | Field List | 798 | Waiting for table metadata lock | |
| 53 | root | localhost | airbnb | Query | 0 | starting | SHOW PROCESSLIST |
+----+-----------------+-----------------+--------+------------+-----------+---------------------------------+---------------------------------------------------+
с State: ожидание блокировки метаданных таблицы (как указано в официальном ответе)
2) KILL 13
(13 основных, соответствующих Id).
Если это действительно тупик, все последующие процессы будут продолжаться в обычном режиме.