max_user_connections错误,是什么意思?

时间:2016-09-12 00:36:46

标签: php mysql

所以我的网站目前正在爆炸式增长。 在我的header.php(登录用户只有)检查是否有mysql_error。 如果找到一个,它会破坏会话并输出:

对不起,出了点问题


[mysql_error]

在这种情况下,它输出:

抱歉,出现问题
用户duavatar_dba已经超过'max_user_connections'活动连接

其他注释
用户登录时会创建一个会话变量,其值为数据库中用户的ID(auto_increment)。当header.php尝试从$_SESSION['id']中找到数据库中的ID时,它(非常罕见)弹出“抱歉,出错”,然后是mysql_error()输出此错误的代码是

$fetchuser = "SELECT * FROM `duavatar_db`.`users` WHERE `users`.`id`=".$_SESSION['id'];
$exec = mysql_query($fetchuser, $con);
if(mysql_num_rows($exec) == 0){
session_destroy();
die("Sorry, something went wrong.<hr>".mysql_error());
}

是,$ con是一个定义的变量。 duavatar_dba是mysql帐户的用户名。


如果交换了ID,或者您刚刚从数据库中手动删除了已登录的帐户,则通常会发生此错误。
我是什么想要我想知道“max_user_connections”是什么,以及如何更改“最大连接数”(如果可能的话)。

1 个答案:

答案 0 :(得分:1)

这是一个MySQL设置,它限制单个用户在任何时候可以拥有的数据库连接数。您的PHP应用程序通常使用单个用户帐户连接到数据库 - 例如,您在语句中使用的那个:

mysqli_connect("localhost","THIS_USER","my_password","my_db");

您的流量显然超过了允许的连接数。

使用以下说明增加值:

http://dev.mysql.com/doc/refman/5.7/en/user-resources.html

例如,如果要将最大连接数增加到20:

ALTER USER 'your_user'@'your_host' WITH MAX_USER_CONNECTIONS 20;

不要意外地减少数量。使用以下查询检查当前值:

SELECT * FROM mysql.user;