Как найти список процессов MySQL и убить эти процессы?
Я столкнулся с проблемой, что база MySql зависает из-за некоторых запросов.
Как я могу найти список процессов и обработать идентификаторы MySql и убить их?
Ответы
Ответ 1
Здесь я иду с решением.
- Войдите в БД.
- запустить команду
show full processlist;
- Здесь вы получите идентификатор процесса со статусом и Query it self, который вызывает проблему висящей базы данных.
- Теперь выберите идентификатор процесса и запустите команду
KILL <pid>;
- Теперь вы должны убить этот процесс.
Когда-нибудь этого недостаточно, чтобы убить каждый процесс вручную. Итак, для этого мы должны пойти с каким-то трюком. здесь я иду с этим трюком:
- Вход в MySql
- запустите этот запрос.
Select concat('KILL ',id,';') from information_schema.processlist where user='user';
- Это будет печатать весь процесс с помощью команды KILL.
- Скопируйте все результаты запроса, обработайте их и удалите трубку
|
снова вставьте и снова вставьте в консоль запросов. HIT ENTER. BooM это сделано.
Ответ 2
Вы можете сделать что-то вроде этого, чтобы проверить, запущен ли какой-либо процесс mysql
:
ps aux | grep mysqld
ps aux | grep mysql
Затем, если он работает, вы можете killall
с помощью (в зависимости от того, что все процессы выполняются в настоящее время):
killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe
Ответ 3
select GROUP_CONCAT(stat SEPARATOR ' ') from (select concat('KILL ',id,';') as stat from information_schema.processlist) as stats;
Затем скопируйте и вставьте результат обратно в терминал.
Что-то вроде:
KILL 2871; KILL 2879; KILL 2874; KILL 2872; KILL 2866;
Ответ 4
На Linux откройте терминал (Ctrl + T) введите
sudo systemctl status mysql.service
отобразится номер pid.
kill <pid>
Это очень хорошо работает для меня, я не знаю, есть ли у вас другая версия Ubuntu OS.