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

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

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

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

时间: 2024-08-04 03:06:22

怎样解决mysql连接过多的错误的相关文章

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

  1.数据库系统允许的最大可连接数max_connections.这个参数是可以设置的.如果不设置,默认是100.最大是16384. 2.数据库当前的连接线程数threads_connected.这是动态变化的. 查看max_connections.max_connections的办法见后. 如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会

mysql连接过多和死掉以及拒绝服务的解决方法_Mysql

mysql连接过多导致总是死掉,后来网上搜索发现此文自Mysql 5.x的某个版本之后,Mysql的自动关闭空闲连接的特性修改了,如果一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决:)处理方法:1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性

解决mysql使用GTID主从复制错误问题

解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决方案,仅供参考! 1.主从网络中断,或主服务器重启,或从服务器重启,从会根据配置文件中的时间(默认1分钟)去自动重连主服务器,直到网络和服务均可正常连接,连接正常后可自动继续同步之前文件,不需要任何人工干预! 2.当主从因为人为原因出现不同步的时候,可以用下面命令进行同步:  代码如下 复制代码 L

解决mysql远程链接1130错误方法介绍

错误提示 错误代码是1130,ERROR 1130: Host 10.0.0.1  is not allowed to connect to this MySQL server 解决办法 无法给远程连接的用户权限问题. 结果这样子操作mysql库,即可解决. 在本机登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称'%'..  代码如下 复制代码 mysql

如何解决宽带连接不上错误691的问题

  宽带连接错误691(由于域上的用户名或密码无效而拒绝访问)/错误635(未知错误)的处理流程如下: (1)用户名密码填写错误 (2)如果用户帐号密码填写无误,则进入下一步继续处理;建议重建拨号软件(如果不懂装拨号软件,可参考户重新): 如果重装拨号软件后正常,原因为"拨号软件丢失"; 如果重装拨号软件后故障依旧,请拨打客服电话10000电信(10060网通/10050铁通)进行障碍申告. 宽带连接错误691 错误691真正意义上来讲:1:域上名出现错误,(用户名或密码输入错误).2

【技术贴】解决MySql连接不上 ip远程连接Host is not allowed to conn

落雨 如果你想连接远程IP的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server 建议使用方法11. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"

高性能--解决mysql连接和进程故障

#netstat -ntulp | grep :22345 #使用netstat和端口号来找到打开连接的进程 #netstat -ntulp | grep 123321/nginx #通过进程id找到该进程拥有的其他连接 #grep 567 /etc/services #查找有问题的连接信息 #ps -eaf | grep 'UID\|123321' #了解进程正在做的事情 #lsof -i -P | grep 123321 #列出进程打开的问

解决MySQL中Sleep连接过多的问题

在mysql中运行SHOW PROCESSLIST;,现数据库中有很多这样的进程: 其实就是MySQL中Sleep连接过多,那么造成sleep的原因,有三个,下面是mysql手册给出的解释: 1.客户端程序在退出之前没有调用mysql_close().[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接...]2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务

MySQL sleep进程连接过多卡住了问题解决办法

MySQL sleep进程连接过多原因分析 当php的页面执行结束时,会自动释放掉一切.相信很多人都跟我想的一样.但事实证明并不是这样.比如session就不会随着页面执行完毕而释放. php的垃圾回收机制,其实只针对于php本身.对于mysql,php没权利去自动去释放它的东西.如果你在页面执行完毕前不调用mysql_close(),那么mysql那边是不会关闭这个连接的.如果你是用的是pconnect方式,即使你在页面执行完毕前调用mysql_close(),也无法另mysql关闭这个连接