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数据库的问题(ERROR 2003 (HY000))
本篇文章是对远程连接Mysql数据库的问题进行了详细的分析介绍,需要的朋友参考下2013-06-06MySQL 使用 ORDER BY 排序和 DELETE 删
这篇文章主要介绍了MySQL 使用 ORDER BY 排序和 DELETE 删除记录的操作过程,即数据库查询与数据操作,本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧2023-11-11干掉一堆mysql数据库,仅需这样一个shell脚本(推荐)
这篇文章主要介绍了干掉一堆mysql数据库,仅需这样一个shell脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04
最新评论