Как найти список процессов MySQL и убить эти процессы?

Я столкнулся с проблемой, что база MySql зависает из-за некоторых запросов.

Как я могу найти список процессов и обработать идентификаторы MySql и убить их?

Ответы

Ответ 1

Здесь я иду с решением.

  1. Войдите в БД.
  2. запустить команду show full processlist;
  3. Здесь вы получите идентификатор процесса со статусом и Query it self, который вызывает проблему висящей базы данных.
  4. Теперь выберите идентификатор процесса и запустите команду KILL <pid>;
  5. Теперь вы должны убить этот процесс.

Когда-нибудь этого недостаточно, чтобы убить каждый процесс вручную. Итак, для этого мы должны пойти с каким-то трюком. здесь я иду с этим трюком:

  1. Вход в MySql
  2. запустите этот запрос. Select concat('KILL ',id,';') from information_schema.processlist where user='user';
  3. Это будет печатать весь процесс с помощью команды KILL.
  4. Скопируйте все результаты запроса, обработайте их и удалите трубку | снова вставьте и снова вставьте в консоль запросов. 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.