MySQL错误1040:太多的连接(mySQL Error 1040: Too Many Conne

2019-07-18 05:51发布

如何解决这些,“SQL错误1040:太多的连接”甚至我试图把

max_user_connection=500

还是“太多的连接”

Answer 1:

MySQL的:ERROR 1040:太多的连接

这基本上告诉MySQL的同时处理的最大连接数,默认情况下它可以同时处理100个连接。

这些理由如下导致MySQL来跑出来的连接。

  1. 慢查询

  2. 数据存储技术

  3. 坏MySQL配置

我可以通过执行以下来克服这个问题。

打开MySQL command line tool和类型,

show variables like "max_connections";

这将返回你这样的事情。

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   |
+-----------------+-------+

您可以更改,而无需重新启动MySQL服务器发出以下命令,例如200的设置。

set global max_connections = 200;

现在,当你重启MySQL下一次它将使用此设置,而不是默认。

请记住,增加连接会增加RAM量的数量需要为MySQL运行。



Answer 2:

这是值得了解的是,如果你在你的服务器分区或驱动器运行的可用磁盘空间,这也将导致MySQL来返回此错误。 如果你确定这不是实际连接的用户数之后,下一步是检查你对你的MySQL服务器驱动器/分区的可用空间。

编辑2019年1月:
这是MySQL的5.7和5.8属实。 我不知道以上版本这一点。



Answer 3:

如果运行了这样的连接,那么很好,你不关闭已打开的连接。

查看打开的连接代码,并确保连接尽快关闭实用。 通常你想利用周围的任何东西的使用关键字是实现IDisposable(包括数据库连接),以确保这些对象只要他们离开需要它们的范围配置。

您可以检查与此查询活动连接的当前数量:

show processlist

参考: MySQL的显示状态-主动或总连接?



Answer 4:

你必须改变max_connections增加总允许的连接。

并设置max_user_connections回默认值0 => 没有限制 ,除非你需要为每个用户连接数限制这一点。

MySQL的连接太多



Answer 5:

在你的程序,你会打开连接,而不将其关闭悬空。

我面临着同样的问题,终于确定了。

我加入这个代码,尝试捕捉后。

finally{
    try {
        rs.close();
        p.close();
        conn.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


Answer 6:

发生此错误,由于连接限制达到最大极限,在配置文件中定义my.cnf

为了解决这种错误,登录到MySQL作为root用户(注意:可以登录为根,因为,MySQL将预先分配附加一个连接root user ),并增加通过使用下面的命令max_connections变量:

SET GLOBAL max_connections = 500;

这种变化会在那里,直到下一次重新启动服务器。 为了使这种更改永久,你有你的配置文件进行修改。 你可以做到这一点,

vi /etc/my.cnf

[mysqld]
max_connections = 500

这篇文章已经详细的一步一步的解决方法来解决这个错误 。 看看吧,希望它可以帮助你。 谢谢。



Answer 7:

试试这个 :

打开终端并输入以下命令: sudo gedit /etc/mysql/my.cnf

粘贴my.cnf文件的行: set-variable=max_connections=500



Answer 8:

请检查您的当前运行的应用程序仍在访问你的mysql和占用了所有的数据库连接。

所以,如果你尝试从工作台MySQL,你会得到“太多的连接”的错误。

停止其持有所有这些数据库连接,然后你的问题就解决了你当前运行的Web应用程序。



文章来源: mySQL Error 1040: Too Many Connection