睡眠连接过多,会对mysql服务器造成什么影响?

严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。

造成睡眠连接过多的原因?

1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)

2. 程序中,没有及时关闭mysql连接

3. 数据库查询不够优化,过度耗时。

那么,如果要从根本上解决sleep连接过多,就得从以上三点反复检查,但是见效并不快。

网上有人分享,使用shell脚本配合cron,定期杀死睡眠时间太久的连接,但是这种方法非常不可取,典型的以暴制暴,很可能导致数据崩溃,而且,还需要编写相应shell, 设置cron, 实施成本较繁琐,不推荐使用。

那么更好的办法应该是让mysql自己决定这些睡眠连接的命运,实施会更简单,有效。

mysql的配置文件中,有一项:

wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止,多好的办法!

如设置: 

wait_timeout=100 #即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止,要比编写shell脚本更简单。

那么,对于正在运行中的生产服务器,在不能停止服务情况下,修改此项怎么办?很简单,以root用户登录到mysql,执行:

set global wait_timeout=100

即可。

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

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

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

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

3. 只能逐步分析系统的SQL查询,找到查询过慢的SQL,优化之

mysql sleep连接过多的完美解决办法相关推荐

  1. 无法连接至远程计算机 pubg,绝地求生无法连接到steam网络完美解决办法

    steam是一个大型游戏平台,汇集了国内外海量热门游戏,其中的绝地求生赫然在列.近期部分玩家在使用steam游戏平台的时候的会遇到部分意外情况,无法连接到steam网络怎么办是咨询量最大的一个问题.下 ...

  2. 绝地求生无法连接至远程计算机,绝地求生无法连接到steam网络完美解决办法

    steam是一个大型游戏平台,汇集了国内外海量热门游戏,其中的绝地求生赫然在列.近期部分玩家在使用steam游戏平台的时候的会遇到部分意外情况,无法连接到steam网络怎么办是咨询量很大的一个问题.下 ...

  3. rdo远程计算机需要,RDO远程连接时错误提示解决办法

    RDO远程连接时提示"远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助" 1.先用个人电脑自带远程工具mstsc连接到服务器Wi ...

  4. Can't connect to MySQL server on 'localhost' (10061)的解决办法!

    Can't connect to MySQL server on 'localhost' (10061)的解决办法! http://blog.sina.com.cn/s/blog_52ebca1f01 ...

  5. Mysql遇到Too many connections的解决办法

    Mysql遇到Too many connections的解决办法 由于线上mysql实例太多,因此也就经常遇到Too many connections的问题,这个问题也是最常见的问题,下面就结合自己的 ...

  6. win10蓝牙已配对安卓手机但连接不上 完美解决方法

    win10蓝牙连接手机蓝牙,显示已配对但未连接 完美解决办法. 电脑:惠普暗影精灵台式机win10,版本号21H2 手机:安卓手机 1. win10蓝牙连接不是手机蓝牙基本上是驱动太老了,自带Wind ...

  7. Mysql Too many connections最实用解决办法

    背景是 ui工具登录mysql报错 too many connections 解决办法:服务器登录mysql : mysql -u root -p 百分之九十进不去,进不去的执行重启命令 :/etc/ ...

  8. Linux下数据库连接超时时长,关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法...

    .Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer ...

  9. MYSQL使用UTF8中文乱码终极解决办法

    转自:http://wenku.baidu.com/view/d2d4f15ba8114431b80dd81f.html MYSQL使用UTF8中文乱码终极解决办法   作者:刘明灵 liumingl ...

最新文章

  1. Windows的驱动开发模型
  2. 阿里内部禁用Executors创建线程池,为什么?
  3. WHY MAKE ANOTHER APPLICATION AT ISSM?
  4. 循环队列 队空、队满 条件
  5. 产品经理没有做过成功的产品,该何去何从?
  6. 分布式系统面试连环炮
  7. 前端页面——Cookie与Session有什么差别
  8. 5.MongoDB之正则表达式与聚合框架
  9. Java CLH队列
  10. PS——图像合成与渐变工具
  11. sqlserver 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'test' 中的标识列插入显式值...
  12. 【网络协议模糊测试实战】使用sulley对PCManFTP进行模糊测试
  13. 第2台计算机的英文简写是,又一IP古装权谋剧来了!那么IP到底是哪两个英文的缩写?...
  14. jdk和jre(jdk和jre的关系)
  15. AndroidWear 连接手持设备与穿戴设备模拟器到开发环境
  16. android音乐播放器开发 SweetMusicPlayer 加载歌曲列表
  17. 医院检验科设计需要注意什么
  18. java 1~20阶乘和 步骤详解
  19. NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等
  20. 2015年职称计算机考试宝典,2015年职称计算机考试宝典[精].doc

热门文章

  1. 操作socket报Too many open files errno :24错误解决方法
  2. 数据结构之外部排序:置换-选择排序
  3. 将M进制的数转换为N进制的数(java)
  4. 从零开始学PowerShell(8)创建一个进度条
  5. bat文件运行java的jar包不弹出dos窗口,开机自启jar包
  6. 搭建一个jumpserver跳板机
  7. Hadoop环境 IDE配置(在eclipse中安装hadoop-eclipse-plugin-2.7.3.jar插件)
  8. perl 面向对象demo
  9. linux主机名的修改
  10. 自己动手写spring(三) 支持注解方式