解决Mysql连接过多错误的方法

2016-01-29 14:49 11 1 收藏

解决Mysql连接过多错误的方法,本例讲解如何解决Mysql连接过多的错误,作者讲解的比较详细,希望能给朋友们带来帮助~~

【 tulaoshi.com - MySQL 】

问:怎样解决mysql连接过多的错误?

答:系统不能连接数据库,关键要看两个数据:

1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。最大是16384。

2、数据库当前的连接线程数threads_connected。这是动态变化的。

查看max_connections、max_connections的办法见后。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

如果 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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

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

来源:http://www.tulaoshi.com/n/20160129/1494350.html

延伸阅读
1  安装MYSQL后更改了ROOT的密码后用  net startmysql  启动时我就遇到了这样的问题.使用以下命令后  c:\mysql\bin\mysqladmin-u root -p shutdown  再net start mysql就没有这个错误提示了!  *************  2  MySQL的1067错误  Q:我的Mysql碰到...
标签: MySQL mysql数据库
1 安装MYSQL后更改了ROOT的密码后用 net startmysql 启动时我就遇到了这样的问题.使用以下命令后 c:\mysql\bin\mysqladmin-u root -p shutdown 再net start mysql就没有这个错误提示了! 2 MySQL的1067错误 Q:我的Mysql碰到了 1067 错误 错误信息为: A system error has occurred. System error 1067 has occurred. Th...
标签: MySQL mysql数据库
在自己XP机器上安装的mysql的windows版本,现在putty连接在服务器上以user,password的方式来连接自己本地的mysql数据库,报错如下: java.net.SocketException: java.net.ConnectException: Connection timed out 截取部分。 网络上搜了半天居然将的都是加3306端口的什么,其实都没有用!其实问题很简单,就是XP的防火墙的问题!以后注意了,...
标签: PHP
这篇文章主要介绍了PHP错误Warning:mysql_query()的解决方法,希望可以真正解决大家的问题,需要的朋友可以参考下  php提示错误: Warning: mysql_query() [function.mysql-query]: Access denied for user  'ODBC'@'localhost'  (using password: NO) 代码:   <?php  class mysqlClass &nbs...
标签: windows系统
win8宽带连接错误813的解决方法   现在的社会无线网铺天盖地,不管是家庭、公司还是商业大楼中都设置了无线网,tuLaoShi.com这也能说明我们国家的互联网发展迅速,已经变成一个互联网大国。即使无线网使用的如此频繁,但是网线连接一直没有被磨灭掉,能够保存必有他的优势之处,理性的分析来看,网线连接的电脑网速更加快,不容易存在...

经验教程

603

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部