MySQL SQL STATE[HY000][1203]用户XXXXX已经拥有超过';最大用户连接数';活动


MySQL SQL STATE[HY000] [1203] User XXXXX already has more than 'max_user_connections' active connections

我注意到我从$STH->fetch(PDO::fetch_ASSOC)返回的值是:

SQLSTATE[HY000] [1203] User *USERNAMEHERE* already has more than 'max_user_connections' active connections

我所有的查询都很成功,一切似乎都很顺利。

我认为我通过将其赋值为NULL来正确地关闭连接。这是我的函数,你知道我为什么要最大化吗?

function mysql_read_single_row($sql, $array_of_values) {
    try {
        //create a connection
        $DBH = new PDO("mysql:host=".CONST_MYSQL_HOST.";dbname=".CONST_MYSQL_DBNAME, CONST_MYSQL_RUSER, CONST_MYSQL_RPASS);
        //set the sql
        $STH = $DBH->prepare($sql);
        //execute query
        $STH->execute($array_of_values);  
    }
    catch(PDOException $e) {
        echo $e->getMessage();
        return false;
    }
    $return_row = $STH->fetch(PDO::FETCH_ASSOC);
    //close the connection
    $STH = null;
    $DBH = null;
    //strip any escaped quotes from the data
    $return_row = array_map('stripslashes', $return_row);
    //return the array
    return $return_row;
}

将$STH和$DBH设置为null是否不足以防止此错误?

在php.ini文件中,您可以增加MAX_USER_CONNECTIONS和MAX_CONNECTONS

或者您可以尝试使用以下SQL命令:

GRANT ALL * TO 'root'@'localhost' WITH MAX_USER_CONNECTIONS 1000; 

如何增加MySql连接参考编号:https://ubiq.co/database-blog/how-to-increase-max-connections-in-mysql/

  1. 检查默认的最大连接数登录MySQL命令行工具,运行以下命令以获取数据库服务器支持的当前默认最大连接数。

    mysql>显示诸如";max_ connections";;

您将看到以下输出。

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

额外阅读:如何在查询中更改MySQL时区

  1. 增加最大连接数有两种方法可以增加MySQL连接。以下是通过MySQL命令行工具在不重新启动的情况下将最大连接数更新为200的命令。

    mysql>设置全局max_connections=200;

上述命令将在不重新启动的情况下增加最大连接数,但一旦服务器重新启动,更改将消失。此方法可用于增加网站/应用程序等生产系统中的可用连接,而无需重新启动数据库服务器。

要永久增加最大连接数,请打开my.cnf文件,

$ sudo vi /etc/my.cnf

根据您的Linux发行版和安装类型,my.cnf文件可能位于以下任何位置。

/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf
~/.my.cnf

在[mysqld]部分下添加以下行。

max_connections = 200

现在,如果您重新启动MySQL服务器,更改将持续存在。

  1. 重新启动MySQL服务器重新启动MySQL Server以应用更改

    $sudo服务mysql重启