MySQL: ERROR 1040: Too many connections

MySQL: ERROR 1040: Too many connections,第1张

很多开发人员都会遇见 ”MySQL: ERROR 1040: Too many connections” 的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中 max_connections 值过小。

首先,我们来查看mysql的最大连接数:

其次,查看服务器响应的最大连接数:

在这里我们可以看到服务器响应的最大连接数为2,远远低于mysql服务器允许的最大连接数值。我们来算一下比例,2/150 ~=1.55%,这么小的比例,很明显给服务器在面对大批量的请求连接时会出现崩溃状态,失去响应。

对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。

我们来修改一下

这里的最大连接数占上限连接数的30%左右。

上面我们知道怎么查看mysql服务器的最大连接数值,并且知道了如何判断该值是否合理,下面我们就来介绍一下如何设置这个最大连接数值。

下面看看cnf文件

【一】尝试以下解决方法:

在命令行中输入services.msc 找到mysql,关闭重启;

找到my.ini或者my.cnf文件,在[mysqld]下加上max_connections=1000,然后重启mysql;

删除没用的连接。登陆到mysql的提示符下,数据show processlist这个命令,可以得到所以连接到这个服务器上的mysql连接

修改mysql配置文件/etc/my.cnf,设置成max_connections=1000,wait_timeout=5。

检查程序代码,对于没有关闭的链接及时进行关闭

【二】可能引起问题的原因

连接池配置的太小;

其他应用连接了mysql之后没有释放连接;

连接数超过了 MySQL 设置的值,wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。

这条错误信息是报告:SQL数据库当前的用户连接数太多。

根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLSTATE 值是包含五个字符的字符串,五个字符包含数值或者大写字母, 代表各种错误或者警告条件的代码。

SQLSTATE有个层次化的模式:头两个字符标识条件的通常表示错误条件的类别, 后三个字符表示在该通用类中的子类。成功的状态是由 00000 标识的。SQLSTATE 代码在大多数地方都是定义在 SQL 标准里的。

扩展资料:

SQL作为一种 *** 作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库 *** 作效率的保障。SQL Server数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。

由于SQL Servers数据库管理系统具有较高的数据管理性能,因其优越的性能,应用范围非常广,大量应用于服务器和客户体系结构中。SQL Servers数据库的性质主要由以下几个方面体现:系统的吞吐量、响应时间以及并行处理能力, 发出请求服务器回应的速度、还有不同屏幕之间切换的速度等等。

参考资料来源:百度百科-SQL数据库


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7333569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存