`

数据库连接过多的错误,可能的原因分析及解决办法

    博客分类:
  • SQL
 
阅读更多
系统不能连接数据库,关键要看两个数据:
1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。最大是16384。
2、数据库当前的连接线程数threads_connected。这是动态变化的。
查看max_connections、max_connections的办法见后。

如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现类似强坛的报错信息。

因为创建和销毁数据库的连接,都会消耗系统的资源。而且为了避免在同一时间同时打开过多的连接线程,现在编程一般都使用所谓数据库连接池技术。

但数据库连接池技术,并不能避免程序错误导致连接资源消耗殆尽。



这种情况通常发生在程序未能及时释放数据库连接资源或其他原因造成数据库连接资源不能释放,但强坛系统估计不会发生这种低级的编程错误。
该错误的简便的检查办法是,在刷新强坛页面时,不断监视threads_connected的变化。如果max_connections足够大,而threads_connected值不断增加以至达到max_connections,那么,就应该检查程序了。当然,如果采用数据库连接池技术,threads_connected增长到数据库连接池的最大连接线程数时,就不再增长了。

从强坛出错的情况看,更大的可能性是数据库系统没能进行适当地配置。下面提出一点建议。供参考

让你们的工程师把MySQL的最大允许连接数从默认的100调成32000。这就不会老出现连接过多的问题了。


查看max_connections

进入MySQL,用命令:show variables
查看数据库最大可连接数的变量值:max_connections


查看threads_connected

进入MySQL,用命令:show status
查看当前活动的连接线程变量值:threads_connected


设置max_connections

设置办法是在my.cnf文件中,添加下面的最后红色的一行:

--------------------------------------------------------------------------------

[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000


--------------------------------------------------------------------------------

修改完毕后,重启MySQL即可。当然,为了确保设置正确,应该查看一下max_connections。

注意:
1、虽然这里写的32000。但实际MySQL服务器允许的最大连接数16384;
2、除max_connections外,上述其他配置应该根据你们系统自身需要进行配置,不必拘泥;
3、添加了最大允许连接数,对系统消耗增加不大。
4、如果你的mysql用的是my.ini作配置文件,设置类似,但设置的格式要稍作变通。
分享到:
评论

相关推荐

    解决mysql数据库连接过多的错误

    如果threads_connected == max_connections时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现类似强坛的报错信息。

    oracle超出最大连接数方案

    超出最大会话数和Ora-00020超出最大进程数错误的解决方法 Ora-00018 Maximum number of sessions exceeded超出最大会话数

    WML信息查询与后端信息发布系统实现 -WML信息查询设计 -java -(报告+源码)

    如果不建立连接池,每个用户每一次访问数据库时都要建立一次连接,这样容易产生连接过多的错误,用户也会觉得速度很慢。 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。...

    数据库助手,方面操作数据库

    软件名称:数据库助手 版 本:2.0 编程语言:Visual Studio .NET C# 调试环境:WINDOWS 2000 server 运行环境:需要 Microsoft .NET Framework1.1(dotnetfx.exe 23M) 支持 版 权:完全免费 使用说明: 此...

    Java Web开发常见问题.docx

    这些错误通常是由于配置错误、代码错误或数据库连接问题等引起的。 内存溢出问题:在Java Web开发中,当应用程序处理大量数据或访问大量对象时,可能会出现内存溢出问题。这通常是由于内存泄漏或程序中使用了过多的...

    System.Data.OleDb.OleDbException: 未指定的错误的完美解决方法

    这个错误是access数据库特有的错误,当access频繁读取或操作过多的时候就会发生这个错误,微软官方已找不到具体的解决方法,网上搜索了很多,可以使用下面几种方法解决一下。 可能解决方法1: 重启服务器IIS,释放...

    SQLServer2008查询性能优化 2/2

    建立、维护数据库和数据库服务器可能是个困难的工作。当服务器的运行越来越慢时,这个工作就变得更加困难。来自用户的愤怒的电话以及站在你办公桌周围的管理人员都使你很不快活。在开发代码的同时,如果你花费时间和...

    SQLServer2008查询性能优化 1/2

    建立、维护数据库和数据库服务器可能是个困难的工作。当服务器的运行越来越慢时,这个工作就变得更加困难。来自用户的愤怒的电话以及站在你办公桌周围的管理人员都使你很不快活。在开发代码的同时,如果你花费时间和...

    SQLServer安全及性能优化

    如何发现问题,如何分析导致性能降低的原因仍然是数据库管理员要掌握的知识。 事务占用资源的时间过长,造成阻塞 许多用户同时访问数据库的时候会产生大量事务,许多用户同时竞争一个资源导致占用资源的时间过长,...

    Oracle表空间数据库文件收缩案例解析

    【发现异常】地产客储系统数据库Oracle_192.168.xx.xx,192.168.xx.xx,数据库customer,连接错误,0 ORA-00257: archiver error. Connect internal only, until freed. 【发生时间】2018.07.04 09:12:21 二、错误原因...

    深度解读!时序数据库HiTSDB:分布式流式聚合引擎

    于此同时,在公有云客户使用HiTSDB的过程中,发现了越来越多由于聚合查询导致的问题,比如:返回数据点过多会出现栈溢出等错误,聚合点过多导致OOM,或者无法完成聚合,实例完全卡死等等问题。这些问题主要由于原始...

    500错误管理系统程序 v1.0

    errconn.asp 数据库类型及连接文件errconfig.asp 系统设置文件技术支持:沃谷http://www.vovogo.comQQ:26117499 tel:13126603725升级:1.将程序覆盖原文件;2.用查询分析器打开原数据库,运行data.sql;3.在企业管理器...

    SqlToolBox 1.8.2

    成功连接到数据库以后,数据库的Schema和table结构会在画面的左边以树的形式展现出来,如果展现的内容过多,您还可以在上方的“过滤器”输入栏中输入关键字以缩小展现范围。在这颗树中,表格(table)是以小圆点的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. ...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    A .POJO类中的任何布尔类型的变量,都不要加is,因为部分框架解析时有可能会出现序列化错误。 B .包名统一使用单数形式,如:com.alibaba.mpp.util。 C .中括号是数组类型的一部分,数组定义如下:String[] ...

    创力CMS(CreateLive CMS) v4.2 build 0518.rar

    CreateLive CMS v4.2 What's New 1,修正跨频道移动后,连接地址不变 2,修正Soft等标签不随频道变换 ... 4,修正统计调用频道调用标签错误问题 5,改进统计调用,防止调用配置丢失 ...19,提供充值卡及转账功能

    软件测试规范

    边值分析法 .......................................................................................................................................... 8 4.猜错法 ..........................................

    windows蓝屏错误代码

    windows蓝屏错误代码 1 0×00000001 不正确的函数。 2 0×00000002 系统找不到指定的档案。 3 0×00000003 系统找不到指定的路径。 4 0×00000004 系统无法开启档案。 5 0×00000005 拒绝存取。 6 0×00000006 无效...

Global site tag (gtag.js) - Google Analytics