MySQL中Sleep连接过多的问题解决办法

有时候你在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;

在我的生产环境中,使用这个办法,取得了相当好的效果。

当然,更根本的方法,还是从以上三点排查之:

1. 程序中,不使用持久链接,即使用mysql_connect而不是pconnect。

2.   程序执行完毕,应该显式调用mysql_close

 

时间: 2024-11-03 16:33:51

MySQL中Sleep连接过多的问题解决办法的相关文章

解决MySQL中Sleep连接过多的问题

在mysql中运行SHOW PROCESSLIST;,现数据库中有很多这样的进程: 其实就是MySQL中Sleep连接过多,那么造成sleep的原因,有三个,下面是mysql手册给出的解释: 1.客户端程序在退出之前没有调用mysql_close().[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接...]2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务

MySQL sleep进程连接过多卡住了问题解决办法

MySQL sleep进程连接过多原因分析 当php的页面执行结束时,会自动释放掉一切.相信很多人都跟我想的一样.但事实证明并不是这样.比如session就不会随着页面执行完毕而释放. php的垃圾回收机制,其实只针对于php本身.对于mysql,php没权利去自动去释放它的东西.如果你在页面执行完毕前不调用mysql_close(),那么mysql那边是不会关闭这个连接的.如果你是用的是pconnect方式,即使你在页面执行完毕前调用mysql_close(),也无法另mysql关闭这个连接

MySQL中出现连接错误:ERROR 1045 (28000): Access denied for user

  MySQL中出现连接错误: ERROR 1045 (28000): Access denied for user ---------------------------------------------------------------------------------- 1.添加用户 shell>mysql mysql>use mysql mysql>grant all privileges on *.* to 'test' identified by 'test' with

Linux开启mysql远程连接方法与问题解决办法

Linux开启mysql远程连接方法 1.GRANT命令创建远程连接mysql授权用户root mysql -u root -p mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123456' WITH GRANT OPTION; 增加root用户授权通过本地机(localhost)访问,密码 "123456". mysql>GRANT ALL PRIVILEGES ON *.* TO r

MySQL中对表连接查询的简单优化教程_Mysql

在MySQL中,A LEFT JOIN B join_condition执行过程如下: · 根据表A和A依赖的所有表设置表B. · 根据LEFT JOIN条件中使用的所有表(除了B)设置表A. · LEFT JOIN条件用于确定如何从表B搜索行.(换句话说,不使用WHERE子句中的任何条件). · 可以对所有标准联接进行优化,只是只有从它所依赖的所有表读取的表例外.如果出现循环依赖关系,MySQL提示出现一个错误. · 进行所有标准WHERE优化. · 如果A中有一行匹配WHERE子句,但B中没

Dreamweaver中光标定位不准确问题解决办法

  我以前碰到在Dreamweaver中光标定位不准的问题是在uft-8编码下,但是今天在Dreamweaver CC 设计模式也同样出现此问题了,下面我就整理了一些解决办法,下面我们一起来看看吧. UTF-8页面,Dreamweaver CC 设计模式 光标定位不准确,显示效果如下: 个人认为这里因为Dreamweaver对中文支持不好引起的问题, 我们知道当在utf8编码下, 中文是占两个字符的位置的. 可能DW没有考虑到这个, 把所有的文字做统一长度来处理, 也把中文也当作是一个字符位.

夜魅社区APP连接不上问题解决办法

给各位夜魅社区软件的使用者们来详细的解析分享一下连接不上问题的解决办法. 解析分享:   1.首先您需要看看您的夜魅社区直播不是最新版的,可以在本站下载最新版;   2.请检查一下你的网络,确保自己是在良好的wifi或4G流畅网络环境下才能正常使用夜魅社区直播;   3.可能是你的手机没有内存空间了,请用手机自带的软件清理手机内存之后就可以正常使用了;   4.可能是你的手机自带拦截系统把直播拦截了,在"设置"中允许使用就完成了. 好了,以上的信息就是小编给各位夜魅社区的这一款软件的使

linux中ssh登录很慢问题解决办法

使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码.严重影响工作效率.登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因: 1. DNS反向解析问题 OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间. 解决办法: 在目标服务器上修改sshd服务器端配置,并重启sshd vi /e

linux中安装PycURL出现的问题解决办法

使用pip安装PycURL时发现如下报错: src/pycurl.h:152:5: warning: #warning "libcurl was compiled with SSL support.... 但是系统中已经安装libcurl及libcrul-devel,最后google到了原因,是因为CentOS源中libcurl的版本过低,需要自行编译安装最新版本的curl: wget http://curl.haxx.se/download/curl-7.39.0.tar.gz tar xf