如何找到 MySQL 进程列表并杀死这些进程?
How to find MySQL process list and to kill those processes?
由于某些查询,MySQL 数据库挂起。
如何找到进程并杀死它们?
解决方法如下:
- 登录数据库;
- 运行 一个命令
show full processlist;
获取进程 ID 和状态并查询本身导致数据库挂起;
- Select 进程 ID 和 运行 命令
KILL <pid>;
终止该进程。
有时手动杀死每个进程是不够的。因此,为此我们必须采取一些技巧:
- 登录MySQL;
- 运行 查询
Select concat('KILL ',id,';') from information_schema.processlist where user='user';
使用 KILL
命令打印所有进程;
- 复制查询结果,粘贴去掉一个竖线
|
,全部复制粘贴到查询控制台。 按回车键。 Boom 完成了.
您可以这样做来检查是否有任何 mysql
进程是 运行:
ps aux | grep mysqld
ps aux | grep mysql
然后,如果它是 运行,您可以 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;
对于MYSQL 8.xx你可以只使用mysqladmin shutdown。不确定这是否适用于旧版本。
根密码为 SomePass 的示例
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;
由于某些查询,MySQL 数据库挂起。
如何找到进程并杀死它们?
解决方法如下:
- 登录数据库;
- 运行 一个命令
show full processlist;
获取进程 ID 和状态并查询本身导致数据库挂起; - Select 进程 ID 和 运行 命令
KILL <pid>;
终止该进程。
有时手动杀死每个进程是不够的。因此,为此我们必须采取一些技巧:
- 登录MySQL;
- 运行 查询
Select concat('KILL ',id,';') from information_schema.processlist where user='user';
使用KILL
命令打印所有进程; - 复制查询结果,粘贴去掉一个竖线
|
,全部复制粘贴到查询控制台。 按回车键。 Boom 完成了.
您可以这样做来检查是否有任何 mysql
进程是 运行:
ps aux | grep mysqld
ps aux | grep mysql
然后,如果它是 运行,您可以 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;
对于MYSQL 8.xx你可以只使用mysqladmin shutdown。不确定这是否适用于旧版本。
根密码为 SomePass 的示例
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;