由于一些查询,MySQL 数据库挂起。
我如何找到进程并杀死它们?
解决办法如下:
show full processlist;
KILL <pid>;
有时手动终止每个进程是不够的,因此,我们必须使用一些技巧:
Select concat('KILL ',id,';') from information_schema.processlist where user='user';
KILL
|
您可以执行以下操作来检查是否有任何 mysql进程正在运行:
mysql
ps aux | grep mysqld ps aux | grep mysql
然后,如果它正在运行,你可以使用 killall(取决于所有进程当前正在运行的内容) :
killall
killall -9 mysql killall -9 mysqld killall -9 mysqld_safe
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;
对于 MYSQL8.xx,你可以直接使用 mysqladmin 关机。不确定这是否适用于旧版本。
Root 密码为 SomPass 的示例
mysqladmin -u root -pSomePass shutdown
您还应该在/var/log/mysql/error.log 中看到关闭
关于 RDS:
SELECT concat('CALL mysql.rds_kill(',id,');') FROM information_schema.processlist ORDER BY time;