首批通过分布式安全可靠测评,为关键业务系统打造
KILL
更新时间:2026-07-15 20:56:55
描述
该语句用来终止一个会话。
说明
如果您拥有 PROCESS 权限,则您可以查看所有会话。如果您拥有 SUPER 权限,您可以终止所有会话和语句。否则,您只能查看和终止您自己的会话和语句。
语法
KILL [CONNECTION | QUERY] 'session_id'
参数解释
| 参数 | 描述 |
|---|---|
| KILL CONNECTION | 与不含修改符的 KILL 一样,可终止给定的 thread_id 。 |
| KILL QUERY | 可终止连接当前正在执行的语句,但是会保持连接的原状。 |
| session_id | 用于标识会话的唯一 ID。可以通过 SHOW PROCESSLIST 或者 SHOW FULL PROCESSLIST 命令查询。 |
示例
业务使用了较大的超时事件,且存在一个会话中的未知长事务持有锁,阻塞了其他事务的执行,需要找到并停止该长事务。
根据事务时间,找到执行时间最长且未结束的事务的
trans_id。obclient> SELECT * FROM __all_virtual_trans_lock_stat ORDER BY ctx_create_time LIMIT 5\G *************************** 1. row *************************** tenant_id: 1002 trans_id: {hash:6605492148156030705, inc:3284929, addr:"xxx.xxx.xx.xxx:xxxx", t:1600440036535233} svr_ip: xxx.xxx.xx.xxx svr_port: xxxx partition: {tid:1101710651081554, partition_id:0, part_cnt:0} table_id: 1101710651081554 rowkey: table_id=1101710651081554 hash=779dd9b202397d7 rowkey_object=[{"VARCHAR":"pk", collation:"utf8mb4_general_ci"}] session_id: 3221577520 proxy_id: NULL ctx_create_time: 2020-09-18 22:41:03.583285 expired_time: 2020-09-19 01:27:16.534919通过事务的
trans_id找到其所持有的所有锁,并根据rowkey明确哪一个是需要停止的事务。如下示例中,第一行的
rowkey与上面查询的rowkey相同,因此该事务即是持有锁的事务。obclient> SELECT * FROM __all_virtual_trans_lock_stat WHERE trans_id LIKE '%hash:6605492148156030705, inc:3284929%'\G *************************** 1. row *************************** tenant_id: 1002 trans_id: {hash:6605492148156030705, inc:3284929, addr:"xxx.xxx.xx.xxx:xxxx", t:1600440036535233} svr_ip: xxx.xxx.xx.xxx svr_port: xxxx partition: {tid:1101710651081554, partition_id:0, part_cnt:0} table_id: 1101710651081554 rowkey: table_id=1101710651081554 hash=779dd9b202397d7 rowkey_object=[{"VARCHAR":"pk", collation:"utf8mb4_general_ci"}] session_id: 3221577520 proxy_id: NULL ctx_create_time: 2020-09-18 22:41:03.583285 expired_time: 2020-09-19 01:27:16.534919 *************************** 2. row *************************** tenant_id: 1002 trans_id: {hash:6605492148156030705, inc:3284929, addr:"xxx.xxx.xx.xxx:xxxx", t:1600440036535233} svr_ip: xxx.xxx.xx.xxx svr_port: xxxx partition: {tid:1101710651081554, partition_id:0, part_cnt:0} table_id: 1101710651081554 rowkey: table_id=1101710651081554 hash=89413aecf767cd7 rowkey_object=[{"VARCHAR":"ob", collation:"utf8mb4_general_ci"}] session_id: 3221577520 proxy_id: NULL ctx_create_time: 2020-09-18 22:41:03.583285 expired_time: 2020-09-19 01:27:16.534919 2 rows in set确认要停止的事务的
session_id后,停止对应会话。obclient> KILL 3221577520; Query OK, 0 rows affected