如何修复这个"SQL Error 1040: Too Many Connection"的问题,即使我尝试执行以下操作:
max_user_connection=500
仍然是 "Too many connection"
如何修复这个"SQL Error 1040: Too Many Connection"的问题,即使我尝试执行以下操作:
max_user_connection=500
仍然是 "Too many connection"
MySQL:错误1040:连接过多
这基本上意味着MySQL同时处理最大数量的连接,并且默认情况下它可以同时处理100个连接。
以下原因会导致MySQL用尽连接:
慢查询
数据存储技术
不良的MySQL配置
我通过以下方法克服了这些问题。
打开MySQL命令行工具
并键入:
show variables like "max_connections";
这将会返回类似于这样的结果。
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 100 |
+-----------------+-------+
您可以通过下面的命令更改设置,例如将其更改为200,而无需重新启动MySQL服务器。set global max_connections = 200;
现在,当您下次重新启动MySQL时,它将使用此设置而不是默认设置。
请记住,增加连接数会增加MySQL运行所需的RAM数量。
/etc/my.cnf
,将max_connections = 200
添加进去,以便于在MySQL重新启动后更改可以保留。 - KevinINSERT
或UPDATE
完成之前等待,从而导致挂起的用户连接数量增加,直到达到限制。 - jimp如果您的连接不足,很有可能是因为您没有关闭已经打开的连接。
请检查打开连接的代码,并确保尽早关闭这些连接。通常情况下,您要使用using关键字来包装实现了IDisposable接口的任何对象(包括数据库连接),以确保这些对象在离开需要它们的作用域时立即被处理。
您可以使用以下查询来检查当前活动连接数:
show processlist
这个错误是由于连接数量达到了在配置文件my.cnf
中定义的最大限制而导致的。
为了解决这个错误,以root用户
身份登录MySQL(注意:你可以以root身份登录,因为mysql会预分配额外的一个连接给root用户
),并使用以下命令增加max_connections变量:
SET GLOBAL max_connections = 500;
这个更改会一直存在,直到下一次服务器重启。如果要使这个更改永久生效,您需要在配置文件中进行修改。您可以通过以下方式完成此操作:
vi /etc/my.cnf
[mysqld]
max_connections = 500
您需要更改 max_connections
以增加允许的总连接数。
并将 max_user_connections
设置回默认值 0 => 没有限制,除非您需要按用户连接 限制。
在您的程序中,您可能已经打开了连接并没有关闭它。
我遇到了同样的问题,并最终确定了原因。
在try catch之后,我添加了以下代码。
finally{
try {
rs.close();
p.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
using
关键字以更简洁的方式完成这个任务。 - Eric J.java
编写的,而不是C#
。 - user2575725查看您的数据库配置了多少连接:
select @@max_connections;
set global max_connections = 200;
查看当前连接数:
show processlist;
sudo gedit /etc/mysql/my.cnf
在my.cnf文件中粘贴以下行:set-variable=max_connections=500
show global variables like max_connections;
来检查它。SET GLOBAL max_connections = 100;
现在登录到MySQL,已修复连接过多的错误。此方法不需要服务器重启。
步骤2:
使用上述步骤1,您可以解决此问题,但是当mysql重新启动时,max_connections将回滚到其默认值。Service mysql stop
编辑配置文件my.cnf:vi /etc/mysql/my.cnf
在mysqld部分下找到max_connections变量。
[mysql]
max_connections = 300
设置更高的值并保存文件。Service mysql start
注意:在增加max_connections变量值之前,请确保服务器有足够的内存处理新的请求和连接。