蓝盟IT小贴士,来喽!
1 .显示数据库链接
显示数据库链接最常见的语句是show processlist。 此语句显示数据库中存在的线程的状态。 普通用户只能查看当前用户启动的链接,具有“进程全局”权限的用户可以查看所有用户的链接。
show processlist结果的Info字段中只显示每条语句的前100个字符。 如果需要显示更多信息,可以使用show full processlist。 同样,也可以显示information_schema.processlist表,以显示数据库链接的状态信息。
通过show processlist的结果,可以明确地了解各线程的链接详细信息。 具体字段的意思很容易理解,下面具体说明各个字段的意思。
Id :此链接的唯一Id,可以使用kill命令将此Id值相加以杀死此链接。
User是启动此链接的用户名。
主机:记录发送请求的客户机的IP和端口号,可以找到是哪个客户机的哪个进程发送的请求。
db :当前正在执行的命令位于哪个数据库中? 如果未指定数据库,则该值为空。
Command :此线程的链接当前正在运行的命令。
Time :表示线程链接处于当前状态的时间。
State :线程的状态,对应命令。
Info :记录线程执行的具体语句。
如果数据库链接太多,过滤有用的信息会很麻烦。 例如,只想调查某个用户或状态的链接等。
2 .杀死数据库链接
如果数据库链接异常,可以使用kill语句杀死该链接。 kill的标准语法是kill连接|查询]流程列表_ id。
KILL可以使用可选的连接或查询修饰符。
与没有修饰符的KILL一样,KILL连接会终止与进程相关的链接。
KILL QUERY将终止链接当前正在执行的语句,但链接本身不会更改。
杀死链接的能力取决于SUPER权限。
如果没有SUPER权限,则只能杀死当前用户启动的链接。
拥有超级权限的用户可以杀死所有链接。请在这里注意。 必须小心使用kill语句。 特别是,如果此链接执行更新语句或表结构更改语句,则可能需要较长的回滚操作来删除该链接。
总结:
本文介绍如何显示和杀死数据库链接。 今后,怀疑数据库有问题,可以第一时间看到数据库链接的状况。
文/上海蓝盟 IT外包专家