Ответ 1
Вы можете использовать оператор KILL
: http://dev.mysql.com/doc/refman/5.0/en/kill.html
Можно ли отменить запрос mysql?
У меня возникла проблема с отправкой запроса, который очень трудоемкий из-за ошибки. И теперь я не могу сделать новый запрос, потому что сервер работает и работает...
Или есть способ остановить все запросы в базе данных или в таблице.
Для вашей информации я использую phpMyAdmin (MySql).
Вы можете использовать оператор KILL
: http://dev.mysql.com/doc/refman/5.0/en/kill.html
В phpMyAdmin перейдите на главную страницу > Статус; вы увидите список ваших MySQL-процессов, и у вас есть ссылка Kill для каждого из них.
Вероятно, ваш phpMyAdmin застрянет, показывая сообщение "Поиск". Что вы можете сделать, так это открыть другую вкладку/открыть сеанс MySQL с помощью консоли и сделать следующее:
Посмотрите на все процессы:
SHOW PROCESSLIST;
И затем уничтожьте этот конкретный поток командой KILL
:
KILL <thread_id>;
Ресурсы
Иногда вы даже не можете попасть на phpmyadmin даже на новую вкладку.
Если у вас есть доступ к среде через командную строку,
1) войти в mysql
mysql -u yourusername -p
2) SHOW PROCESSLIST;
3) KILL <thread_id>;
Это может помочь вам:
Это научит вас проверять свои запросы, прежде чем просто выбросить их на страницу. ОБЪЯСНИТЕ ПЛАН ваш друг.
Иногда, если сервер базы данных не отвечает из-за слишком длинного запроса и:
SHOW PROCESSLIST
в CLI не очень полезна, например, из-за слишком большого количества запущенных процессов...тогда самым быстрым вариантом может быть перезапуск сервера, который останавливает все запросы в базе данных:
service mysql restart
или же
sudo /etc/init.d/mysql restart
Это не самый безопасный вариант, потому что в некоторых случаях прерванные запросы могут вызывать несогласованность данных в базе данных..., но иногда это может быть лучшим решением.