【问题标题】:Cakephp: Is it possible to limit the number of database connections?Cakephp:是否可以限制数据库连接数?
【发布时间】:2012-01-08 21:13:50
【问题描述】:

我读到 Bluehost 将一个用户的数据库连接数限制为 15 个。我相信我的 web 应用程序正在用完所有这些连接。每当我尝试使用 cake 控制台访问数据库时,都会出现以下错误:

2011-11-29 05:06:58 警告:警告 (2): mysql_connect() [function.mysql-connect]: 用户 我的用户名已经有超过 'max_user_connections' 活动 中的连接 [/home2/myusername/public_html/myapp/cake/libs/model/datasources/dbo/dbo_mysql.php, 第561行]

我如何确保有可供蛋糕控制台使用的连接?

编辑:

需要明确的是,我的应用并没有用完连接。但是,每次我尝试从 cake 控制台访问数据库时都会收到该错误。这让我相信 cake 出于某种原因正在创建并保持联系。

【问题讨论】:

  • 你确定你没有在你的 app/config/database.php 中配置一个持久的数据库连接吗?否则,只要完成解析,Cake 就应该关闭该数据库连接。或者您是否尝试同时启动超过 15 个请求?
  • 不。不使用持久连接。我将尝试复制开发中的错误。 var $production = array('driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'prefix' => '', ...);
  • 您可以看出这是托管服务提供商的限制:他们不允许同时超过 15 个请求。也许您可以通过在某个级别进行缓存来解决这个问题(避免每次都去数据库),但是这种托管显然不是为了扩展。

标签: php database cakephp configuration


【解决方案1】:

如果您拥有 root 用户帐户(或具有超级权限),
您可以更改 cli 脚本以使用 root 进行连接,
作为根连接,甚至达到最大连接(max + 1)

您可以使用php_sapi_name 来区分普通网络访问还是通过控制台访问。

我不认为最大连接数上限为 15,
如果是这样,您应该考虑 bluehost 以外的其他托管公司(因为很烂)...

要验证这一点,请发出如下 SQL:-

show variables like "max%";

【讨论】:

  • 感谢您的回复。我使用了您建议的命令,“max_user_connections”确实是 15。“max_user_connections”限制了任何给定帐户可以同时建立的连接数。不幸的是,我是这个网站的第三方开发者,所以我必须与 bluehost 打交道。
  • mysqld 实际上允许 max_connections+1 个客户端进行连接。额外的连接保留给拥有 SUPER 权限的帐户使用。
  • 应用正在使用bluehost提供的数据库。我没有(也不应该)拥有超级访问权限。还是我在这里遗漏了什么?
  • 不,你没有......没有什么可以做的......联系bluehost
猜你喜欢
  • 2011-11-17
  • 2019-06-17
  • 1970-01-01
  • 2019-07-07
  • 2012-07-27
  • 2015-03-31
  • 2018-11-08
  • 1970-01-01
相关资源
最近更新 更多