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;

(0)

相关推荐

  • PHP中使用sleep造成mysql读取失败的案例和解决方法

    近日,由于项目需求 需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作. sleep等待的时间至少有一个小时以上 此前做过测试 用sleep函数去完成数小时后执行的操作是可行的   可邪门的问题出来了 程序用sleep后发现不能从数据库取到相应的信息 把sleep去掉 结果正常   郁闷中... 难道sleep影响读库操作!!! 于是为了方便测试 直接来个sleep(10) 十秒后执行 结果能从数据库读取信息   可为什么sleep()一个小时后不能读取信息呢? 为了测试方便我直接在

  • MySQL Sleep连接过多问题解决方法

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

  • MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)

    最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦. 远程连接mysql是总是提示: 复制代码 代码如下: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 很明显这是连接初始化阶段就丢失了连接的错误. google半天大多是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句. 但是我的配置文件并没有配

  • MySQL 可以用localhost 连接,但不能用IP连接的问题解决方法

    MySQL localhost 连接,但不能用IP连接问题解决方案 主要涉及到MySQL 可以用localhost 连接,但不能用IP连接的问题 方面的内容,对于MySQL 可以用localhost 连接,但不能用IP连接的问题 1.打开cmd窗口,进入MySQL安装的bin目录 2.执行命令登录数据库,之后会出现一行要你输入密码的 mysql -u root -p 3.执行以下命令分配新用户: grant all privileges on *.* to 'root'@'%' identifi

  • Linux服务器中MySQL远程连接的开启方法

    前言 学习MySQL重新整理以前非MK的记载 描述 没有开启的话连接数据库报错:2003-can't connect to MYSQL 方法/步骤 •第一步 远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库. mysql -u$user -p $pwd •第二步 创建用户用来远程连接 GRANT ALL PRIVILEGES ON *.* TO '$username'@'%' IDENTIFIED BY '$password' WITH GRANT OPTIO

  • cmd中MySQL中文数据乱码问题解决方法

    我的MySQL是默认utf8编码的,所建数据库也是设置utf8编码,使用程序可以新增中文数据,在cmd中使用SQL语句新增数据则报类似Incorrect string value: '\xB2\xE2\xCA\xD4' for column 'title' at row 1错误,而使用SQL语句查询出之前程序所新增中文数据都是乱码的. 右击在cmd界面上面边框→属性→选项 ,查看cmd的编码方式是是GBK,并不是utf-8. 其实数据库内部是没有乱码的,只是和cmd的编码方式不一样,在cmd呈现

  • DOS命令行窗口mysql中文显示乱码问题解决方法

    MySQL的默认编码是Latin1,不支持中文,如何修改MySQL的默认编码呢,下面以gbk为例来说明(这里只介绍Windows环境下) 1.中止MySQL服务(打开控制面板-->管理工具-->服务)找到MySQL,右键选择停止. 2.打开MySQL安装目录,找到my.ini文件. 3.打开my.ini文件 修改如图两个地方   4.修改完成后,重新启动MySQL服务.

  • mysql连接过多和死掉以及拒绝服务的解决方法

    mysql连接过多导致总是死掉,后来网上搜索发现此文自Mysql 5.x的某个版本之后,Mysql的自动关闭空闲连接的特性修改了,如果一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决:)处理方法:1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性

  • bitronix 连接 MySQL 出现MySQLSyntaxErrorException 的解决方法

    bitronix 连接 MySQL 出现MySQLSyntaxErrorException 的解决方法 1. 开发环境 hibernate 版本:5.1.0.Final Bitronix btm 版本:2.1.3 2 异常堆栈信息 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'hibernate' at

  • java连接mysql数据库及测试是否连接成功的方法

    本文实例讲述了java连接mysql数据库及测试是否连接成功的方法.分享给大家供大家参考,具体如下: package com.test.tool; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement

  • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

随机推荐