如何解决如何摆脱“最大用户连接”错误?
选项max_user_connections是一个限制,不是针对服务器实例中的同时连接总数,而是针对单个用户帐户。
假设用户被称为db_user@localhost
。您可以通过运行以下查询来了解此用户的连接限制:
SELECT max_user_connections FROM mysql.user
WHERE user='db_user' AND host='localhost';
如果这是一个非零值,请将其改回:
GRANT USAGE ON *.* TO db_user@localhost WITH MAX_USER_CONNECTIONS 0;
或者
UPDATE mysql.user SET max_user_connections = 0
WHERE user='db_user' AND host='localhost';
FLUSH PRIVILEGES;
这将导致mysqld
允许用户db_user@localhost
使用全局设置max_user_connections作为其限制。
一旦你到达这一点,现在使用检查全局设置
SHOW VARIABLES LIKE 'max_user_connections';
如果这是一个非零值,你需要做两件事
:寻找设置/etc/my.cnf
[mysqld]
max_user_connections = <some number>
注释掉那一行
:动态设置值
SET GLOBAL max_user_connections = 0;
不需要重启 MySQL。
解决方法
我正在为我的 webapp 使用 MySQLi,但每当我想访问某个特定页面时,我都会得到mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections
.
我已经尝试关闭所有连接,但这并没有改善这种情况。
有没有办法确切地知道在任何特定时刻打开了哪些连接或任何其他有用的数据可以帮助我解决这个问题?
顺便说一句,我使用的是 PHP 5.2.17 和 MySQL 5.1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。