当前位置: 首页 > 知识 >正文

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

系统无法连接到数据库,关键取决于两个数据:

1.max_connections,数据库系统允许的最大连接数。可以设置该参数。如果未设置,默认值为100。最大值是16384。

2.数据库threads_connected中的当前连接线程数。这是动态的。

See below for the method of viewing the maximum number of connections and the maximum number of connections.

如果threads _ connected==max _ connections,则数据库系统不能提供更多的连接。这时,如果程序还想创建新的连接线程,数据库系统会拒绝。如果程序不做太多的错误处理,

会出现类似强坛的错误信息。

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

然而,数据库连接池技术无法避免程序错误导致的连接资源耗尽。

这种情况通常发生在程序未能及时释放数据库连接资源或者其他原因,但强坦系统估计不会出现这种低级编程错误。

检查此错误的简单方法是在刷新强平台页面时不断监视threads_connected的变化。如果max_connections足够大,

而且threads_connected值一直增加到max_connections,所以是时候检查程序了。当然,如果采用数据库连接池技术,

当threads_connected增长到数据库连接池中的最大连接线程数时,它将不再增长。

从强坦的错误来看,更有可能是数据库系统没有配置好。这里有一些建议。供参考

让您的工程师将mysql连接的最大数量从默认的100调整到32,000。这不会总是导致过多连接的问题。

View the maximum number of connections

Enter MySQL and use the command name: showvariables.

查看数据库中最大连接数的变量值:max_connections。

View Thread _ Connected

Enter MySQL and use the command: show status.

查看当前活动连接线程的变量值:threads_connected。

Set the maximum number of 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作配置文件,设置类似,但设置的格式要稍作变通。

相关文章:
  • 3月22日基金净值:国寿安保稳鑫一年持有混合A最新净值1.013,涨0.28%_基金频道_证券之星
  • 华夏中证智选1000成长创新策略ETF净值下跌1.21% 请保持关注
  • 7月14日基金净值:博时央企创新驱动ETF最新净值1.4175,涨0.5%
  • 7月5日基金净值:泰康沪深300ETF最新净值4.165,跌0.73%
  • 纳斯达克100指数了解一下
  • 6月12日基金净值:博时科技创新混合A最新净值1.4405,涨0.33%
  • 3月23日基金净值:国泰融安多策略灵活配置混合A最新净值2.7906,涨1.44%_基金频道_证券之星
  • 7月12日基金净值:华夏军工安全混合A最新净值1.597,跌1.36%
  • 4月19日基金净值:华安动态灵活配置混合A最新净值4.235,跌0.49%
  • 7月7日基金净值:景顺长城景盛双息收益债券A最新净值1.045