有时候你在mysql中运行SHOW PROCESSLIST;后会发现数据库中有很多这样的进程:

那么造成sleep的原因,有三个,下面是mysql手册给出的解释:
1.客户端程序在退出之前没有调用mysql_close().[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接。。。]
2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务端一直认为客户端仍然存在(有可能客户端已经断掉了)]
3.客户端程序在结束之前向服务器发送了请求还没得到返回结果就结束掉了. [参看:tcp ip协议的三次握手]
解决的方法也很简单
在配置文件中加入
复制代码 代码如下:
[mysqld]
wait_timeout=10
或者
复制代码 代码如下:
mysql> set global wait_timeout=10;
最后
以上就是简单乌冬面最近收集整理的关于MySQL Sleep连接过多问题解决方法的全部内容,更多相关MySQL内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复