mysql查看连接数和设置会话超时问题
目录
- 在排查mysql资源占用的情况下
- 查看当前打开的连接的数量
- 查看连接状态
- 查看不在睡眠的线程数
- 上面简单的查看了一下mysql的会话连接
- 下面来设置一下会话超时时间
- 现在通过修改超时时间来处理掉sleep进程
- 总结
在排查mysql资源占用的情况下
我们就需要查看是否是过多sleep进程导致的资源占用情况
查看当前打开的连接的数量
showandroid 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.http://www.devze.comcnf
查看全局超时时间和会话超时时php间:
show GLOBAL VARIABLE编程客栈S 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秒后交互和非交互没有任何操php作,连接就会断开
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论