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秒后交互和非交互没有任何操作,连接就会断开
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Mysql中 show table status 获取表信息的方法
这篇文章主要介绍了Mysql中 show table status 获取表信息的方法的相关资料,需要的朋友可以参考下2016-03-03
php mysql localhost,127.0.0.1和ip区别
localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。看来这个入门问题还有人不清楚,其实这两者是有区别的2014-05-05
利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享
当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不需要使用bigint,只需要4个字节,节省存储空间,同时效率也高很多2012-03-03
MySQL通过存储过程来添加和删除分区的过程(List分区)
这篇文章主要介绍了MySQL-通过存储过程来添加和删除分区(List分区),本文通过创建存储过程来添加和删除分区,可以避免在分区存在时添加分区报错,或者分区不存在时删除分区报错的问题,需要的朋友可以参考下2023-09-09


最新评论