终止会话(KILL SESSION)¶
KILL SESSION语句用于关闭未登出的会话(Session)。
Note
- 只有
root用户可以终止会话。 - 执行
KILL SESSION命令后,所有的 Graph 服务同步最新的会话信息需要等待2* session_reclaim_interval_secs秒,默认等待120秒。
语法¶
KILL SESSION语句支持终止单个和多个会话,语法如下:
-
终止单个会话
KILL {SESSION|SESSIONS} <SessionId>{SESSION|SESSIONS}:支持SESSION和SESSIONS的写法。<SessionId>:指会话 Session 的 ID。可执行 SHOW SESSIONS 命令查看会话 ID。
-
终止多个会话
SHOW SESSIONS | YIELD $-.SessionId AS sid [WHERE <filter_clause>] | KILL {SESSION|SESSIONS} $-.sidNote
KILL SESSION语句支持管道操作,即将SHOW SESSIONS语句与KILL SESSION语句结合使用,以终止多个会话。[WHERE <filter_clause>]:- 可选项,使用
WHERE子句过滤会话;<filter_expression>指滤过表达式,例如WHERE $-.CreateTime < datetime("2022-12-14T18:00:00")。如果不加该选项,则关闭所有当前会话。 WHERE子句中支持的过滤项有:SessionId、UserName、SpaceName、CreateTime、UpdateTime、GraphAddr、Timezone、ClientIp。可以执行 SHOW SESSIONS 命令查看这些过滤项的含义。
- 可选项,使用
{SESSION|SESSIONS}:支持SESSION和SESSIONS的写法。
Caution
请谨慎使用过滤条件以防误删会话。
示例¶
-
终止单个会话。
nebula> KILL SESSION 1672887983842984
-
终止多个会话。
- 终止创建时间小于
2023-01-05T18:00:00的所有会话。nebula> SHOW SESSIONS | YIELD $-.SessionId AS sid WHERE $-.CreateTime < datetime("2023-01-05T18:00:00") | KILL SESSIONS $-.sid
- 终止创建时间最早的两个会话。
nebula> SHOW SESSIONS | YIELD $-.SessionId AS sid, $-.CreateTime as CreateTime | ORDER BY $-.CreateTime ASC | LIMIT 2 | KILL SESSIONS $-.sid
- 终止用户名为
session_user1创建的所有会话。nebula> SHOW SESSIONS | YIELD $-.SessionId as sid WHERE $-.UserName == "session_user1" | KILL SESSIONS $-.sid
-
终止所有会话
nebula> SHOW SESSIONS | YIELD $-.SessionId as sid | KILL SESSION $-.sid // 或者 nebula> SHOW SESSIONS | KILL SESSIONS $-.SessionIdCaution
终止所有会话时,当前会话也会被终止。请谨慎使用。
- 终止创建时间小于
最后更新:
2025年11月18日