【问题标题】:MySQL Maximum Connections Allowed Used - Coding Error?MySQL 允许使用的最大连接数 - 编码错误?
【发布时间】:2013-03-06 10:11:10
【问题描述】:

我最近遇到了我们网站的问题。用户/访问者被拒绝连接到数据库。当我尝试通过 PHPMyAdmin 登录时,它返回以下消息:“#1203 - 用户已经拥有超过 'max_user_connections' 个活动连接。”

它是一个共享主机,显然允许的最大连接数是 20。我无法更改这一点,但该站点通常一次不会超过 20 个,并且错误出现大约一两个小时。

当我问主机问题是什么时,所有发回的都是这样的:“我们担心这与糟糕的脚本有关,并且正在填充所有分配到数据库的连接 (20)。你需要检查您尝试返回的脚本和数据资产”。

这到底是什么意思?

这是我正在使用的一段典型代码:

session_start();
require 'include.php';
mysql_connect($DBhost,$DBuser,$DBpass);
mysql_select_db("$DBName");

我知道这里的信息并没有提供太多具体脚本的方式,但我想知道是否存在连接未关闭的问题?任何有任何想法的人都会有很大帮助,我可以看看这个。 是否有任何可能导致此问题的编码错误?页面加载后连接不应该自动关闭吗?

提前谢谢你

【问题讨论】:

  • 最有可能发生的是 PHP 代码运行时连接没有被释放。你能举一个整页脚本的例子吗?
  • 阅读已接受的答案将为您提供一些背景信息:MySQL Error “Too many connections”
  • 嗨,詹姆斯,感谢您的回复。当错误出现时,我一直在浏览最有可能被访问的页面。登录页面是一个,在检查这一点时,脚本在页面的开头连接,然后在中途调用“mysql_connect($DBhost,$DBuser,$DBpass); mysql_select_db("$DBName");"再次,出于某种原因。这是我发现的唯一一个这样做的页面。会不会是这个问题?
  • 你好,尼克哈尔。谢谢,我昨晚看的时候看到了那个页面。非常好的和详细的答案。这一点很有帮助:“如果我没记错的话,max_connections 不限制您可以打开到 MySQL 服务器的连接数,而是限制可以打开到该服务器的连接总数,任何连接到它的人。”因为它让我对问题可能是什么有了一些了解。
  • 只是一个更新,我已经删除了 mysql_connect() 的 double-ups,但是这个问题又发生了。我似乎找不到任何解决方法。当时只有一个人查看该网站。

标签: php mysql connection


【解决方案1】:

要了解当前有多少连接,您可以点击 STATUS,然后点击 PHPMYADMIN 中 Runtime Information 下的 SERVER 选项卡。或运行:

mysqladmin -uroot -ppassword processlist (from command line)

告诉您的主机您只想限制来自本地主机的连接。我怀疑你正在从互联网上受到调查。 processlist 命令会告诉你是否是这种情况。

【讨论】:

  • 如果您找不到 STATUS,您可能有一个名为“进程”的链接,它应该做同样的事情。您还可以在 Sql 查询窗口中运行“SHOW PROCESSLIST”。
猜你喜欢
  • 1970-01-01
  • 2013-06-27
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 2018-02-12
  • 2014-05-28
  • 1970-01-01
相关资源
最近更新 更多