理解MySQL数据库连接数过多的原因

日期: 2011-10-25 作者:mysqlops 来源:TechTarget中国 英文

  使用MySQL数据库,有一个容易出现的问题——Too many connections。连接数超过max_connections就会报这个错误。MySQL为了在达到最大连接数时也能给DBA有机会操作,SUPER权限的账号能够使用第max_connections + 1个连接。

  我们知道,由于SUPER权限有很多特权,因此不会把这个权限给予应用的账号。但是,当应用异常或者数据库异常,达到最大连接数的时候,用管理账号登录,有时候仍然会报Too many connections。此时,如果应用不能及时处理,数据库这边就很难办了。

  为什么没有达到官方文档里的预期呢,super账号没有得到额外的那个连接。

  在我慢慢慢慢看mysql源码的过程中,恰好看到了原因——MySQL的逻辑是,建立线程在前,验证账号在后。

  建立线程的时候,还不知道来源于什么账号。MySQL是以一个新的(或者是线程池中的)线程来提供除监听以外的所有服务。

  所以,当应用异常并且频繁尝试建立连接的时候,常能占据那第max_connections+1个连接。super账号由于拿不到线程,因此也是Too many connections了。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

mysqlops
mysqlops

相关推荐

  • Notre Dame对云端SQL Server性能基准的探索实践

    确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。

  • DBA必须掌握的数据库恢复管理技术

    如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。

  • Azure数据湖分析从U-SQL中获得提升

    大数据的发展已经让许多精通SQL的数据专业人员不知所措。微软的U-SQL编程语言试图让这些人回归数据查询游戏。

  • TT百科:SQL(结构化查询语言)

    一般来说,SQL-on-Hadoop仍是一项新兴技术,但随着各个公司寻求获得拥有大数据应用程序编程SQL技能的开发和分析人员,它们正逐渐成为Hadoop部署的固定组件。