如何找到MySQL进程列表并杀死这些进程?

时间:2017-05-26 01:57:04

标签: mysql kill-process

我遇到问题,由于某些疑问,MySql数据库挂起。

如何找到进程列表,并处理MySql的id并将其杀死?

4 个答案:

答案 0 :(得分:62)

我在这里找到解决方案。

  1. 登录DB。
  2. 运行命令show full processlist;
  3. 在这里,您将获得具有状态的进程ID并自行查询,从而导致挂起数据库的问题。
  4. 现在选择进程ID并运行命令KILL <pid>;
  5. 现在,你要杀死这个过程。
  6. 有时这不足以手动杀死每个进程。所以,为此,我们要采取某种方法。在这里,我采用了这个技巧:

    1. 登录MySql
    2. 运行该查询Select concat('KILL ',id,';') from information_schema.processlist where user='user';
    3. 这将使用KILL命令打印所有进程。
    4. 复制所有查询结果,操纵它们并删除管道|符号并再次粘贴到查询控制台中。 HIT ENTER。 BooM已完成

答案 1 :(得分:9)

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;

答案 2 :(得分:3)

您可以执行以下操作来检查是否有任何mysql进程正在运行:

ps aux | grep mysqld
ps aux | grep mysql

然后,如果它正在运行,您可以使用killall(取决于当前正在运行的所有进程):

killall -9 mysql
killall -9 mysqld
killall -9 mysqld_safe    

答案 3 :(得分:0)

对于 MYSQL 8.xx 你可以使用 mysqladmin shutdown。不确定这是否适用于旧版本。

root 密码为 SomePass 的示例

mysqladmin -u root -pSomePass shutdown

您还应该在 /var/log/mysql/error.log 中看到关闭