Подтвердить что ты не робот

Разблокировка таблиц, если поток потерян

http://dev.mysql.com/doc/refman/5.0/en/internal-locking.html

Ниже приводится выдержка из документации.

mysql> LOCK TABLES real_table WRITE, temp_table WRITE;
mysql> INSERT INTO real_table SELECT * FROM temp_table;
mysql> DELETE FROM temp_table;
mysql> UNLOCK TABLES;

Мой вопрос в том, что если я использую эту логику в коде оболочки script, и если поток потерян (не убит) до того, как он достигнет инструкции "разблокировать таблицы", как я узнаю, что некоторые таблицы заблокированы и как открывать таблицы вручную?

4b9b3361

Ответ 1

как я узнаю, что некоторые таблицы заблокированы?

Вы можете использовать команду SHOW OPEN TABLES для просмотра заблокированных таблиц.

как разблокировать таблицы вручную?

Если вы знаете идентификатор сеанса, который заблокировал таблицы - "SELECT CONNECTION_ID()", вы можете запустить команду KILL, чтобы завершить сеанс и разблокировать таблицы.

Ответ 2

Вот что я делаю для FORCE UNLOCK Для некоторых заблокированных таблиц в MySQL

1) Введите MySQL

mysql -u your_user -p

2) Посмотрите список заблокированных таблиц

mysql> show open tables where in_use>0;

3) Посмотрите список текущих процессов, один из которых заблокирует вашу таблицу (ы)

mysql> show processlist;

4) Убейте один из этих процессов

mysql> kill put_process_id_here;

Ответ 3

С Sequel Pro:

Перезапуск приложения разблокирует мои таблицы. Он сбрасывает соединение сеанса.

NOTE: I was doing this for a site on my local machine.