mysql查看连接数和设置会话超时问题
作者:有谁看见我的剑了?
这篇文章主要介绍了mysql查看连接数和设置会话超时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
在排查mysql资源占用的情况下
我们就需要查看是否是过多sleep进程导致的资源占用情况
查看当前打开的连接的数量
show status like '%Threads_connected%'
查看连接状态
show full processlist;
- User: 连接的用户
- Host: 连接的主机地址
- db:访问的数据库
- Command: 目前指令类型
- Sleep 休眠
- Query 查询
- Time:占用时间
- State:状态
- starting 正在进行
- info:使用的sql语句
查看不在睡眠的线程数
show status like '%Threads_running%'
上面简单的查看了一下mysql的会话连接
下面来设置一下会话超时时间
查看会话超时时间
show GLOBAL VARIABLES like '%timeout%'; #查看全局会话时间
wait_timeout 非交互连接超时时间,比如jdbc连接
interactive_timeout 交互连接超时时间,比如客户端连接
//默认超时时间是8小时
现在通过修改超时时间来处理掉sleep进程
set GLOBAL interactive_timeout = 60; set GLOBAL wait_timeout = 60;
现在只是临时设置,永久设置的话需要修改mysql配置文件
在[mysqld]下面添加两条配置
echo ' interactive_timeout=60 wait_timeout=60 ' >> /etc/my.cnf
查看全局超时时间和会话超时时间:
show GLOBAL VARIABLES like '%timeout%'; #查看全局超时时间 show VARIABLES like '%timeout%'; #查看会话超时时间
真正起到作用的是会话超时时间
wait_timeout 会默认继承全局wait_timeout的值,但是修改全局的interactive_timeout 的值,会直接同步会话的 interactive_timeout 和 wait_timeout 的值
实验一下,将全局 interactive_timeout 修改为 120(是直接修改mysql配置文件)
查看全局超时时间和会话超时时间
可以看出我修改了全局的interactive_timeout 配置为120 ,会话的interactive_timeout和wait_timeout 配置都已经同步了
###现在在120秒后交互和非交互没有任何操作,连接就会断开
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。