Поиск по сайту:

Кто не отличает вас от других, наносит нам оскорбление (Ж. и Э. Гонкуры).

Как узнать, кто блокирует таблицу в MySQL

1 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
24 июля 2021
Как установить MySQL на Ubuntu 16.04
Блокировка MySQL относится к флагу блокировки, связанному с таблицей. В основном блокировки MySQL используются в пользовательских сеансах для предотвращения доступа других пользовательских сеансов к таблице во время активного сеанса. Конкретный сеанс MySQL может получить доступ только к своим блокировкам, но не к блокировкам, связанным с другими клиентами.

После того, как таблица заблокирована в конкретном сеансе, другие сеансы не могут читать или писать в таблицу, пока блокировка из сеанса не будет снята. Следовательно, все остальные сеансы находятся в режиме ожидания, пока блокировка не будет снята.

Эта краткая статья покажет вам, как показать доступные блокировки с помощью команды show process list.

 

Как заблокировать таблицу

Чтобы получить состояние блокировки для определенной таблицы, вы можете использовать оператор LOCK TABLES. Общий синтаксис для блокировки таблиц:

mysql > LOCK TABLES tb_name [LOCK_TYPE]

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

LOCK TABLES sakila.actor READ;

Если у вас есть блокировка, все остальные сеансы не будут обновлять данные, хранящиеся в таблице.

Например, следующий оператор завершится ошибкой, если таблица не будет разблокирована.

INSERT INTO sakila.actor(first_name, last_name, last_update) VALUES ('Hello', 'world', current_date());

MySQL выдаст вам ошибку чтения как:

ERROR 1099 (HY000): Table 'actor' was locked with a READ lock and can't be updated

Как разблокировать таблицу

Чтобы разблокировать таблицу, используйте запрос UNLOCK TABLES как:

mysql > UNLOCK TABLES;

Показать заблокированные таблицы

По умолчанию не существует окончательного способа запросить отображение заблокированной таблицы, например: (SHOW LOCKED TABLES;).

Однако мы можем использовать команду processlist, чтобы показать заблокированные таблицы и пользователей.

Используйте команду:

SHOW PROCESSLIST;

Это сбрасывает информацию, а также запросы, ожидающие блокировки.

В приведенном выше примере показано, как пользователь root блокирует таблицу в таблице акторов.

 

Вывод

В этой краткой статье показано, как блокировать и разблокировать таблицы и просматривать пользователей, у которых таблица заблокирована в базе данных MySQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читать  Предложение IN в MySQL
Поделиться в соц. сетях:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close