在使用mysql运行某些语句时,特别是在客户端统计数据时,由于数据量大或者统计的sql不会命中索引导致死锁或者网络超时客户端断开连接。此时需要去服务器上kill掉超时的sql语句防止影响mysql性能。
1. 登录mysql的服务端
相关命令:mysql -u用户名 -p -h地址 -P端口
输入密码
2. 查看mysql中各个线程的状况
相关命令:show processlist;
mysql> show processlist;
+------+------+----------------------+----------------+---------+-------+-----------+---------------------
| Id | User | Host | db | Command | Time | State | Info
+------+------+----------------------+----------------+---------+-------+-----------+---------------------
| 7028 | root | ucap-devgroup:53396 | platform | Sleep | 19553 | | NULL
| 8352 | root | ucap-devgroup:54794 | platform | Sleep | 4245 | | NULL
| 8353 | root | ucap-devgroup:54795 | platform | Sleep | 3 | | NULL
| 8358 | root | ucap-devgroup:62605 | platform | query | 4156 | updating | update t_shop set |
每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST
语句查看哪些线程正在运行,并使用KILL thread_id
语句终止一个线程。
3. 杀死对应线程
相关命令:kill id
kill 8358