【问题标题】:Codeigniter Too many connection __construct()Codeigniter 连接过多 __construct()
【发布时间】:2016-10-22 00:45:26
【问题描述】:

我正在使用 CI 3.X。现在在我的应用程序中,我使用多个数据库。现在我的托管服务器允许最多 100 个连接,所以我的应用程序崩溃了。

在我的数据库配置中,我将 PCONNECT 设置为 FALSE

现在我的结构如下:

我有一个基础控制器 MY_Controller,它扩展到 CI_Controller

然后我有一个 Customer_Controller 延伸到 MY_Controller。

在 Customer_Controller 中,我加载了我的辅助数据库。这个 Customer_Controller 位于 library 文件夹中。

我所有的其他控制器都扩展到这个控制器。

那么我哪里错了?为什么我的 MySQL 服务器会出现这个错误???

我得到的错误:

遇到了 PHP 错误

严重性:警告

消息:mysqli::real_connect(): (HY000/1040): 连接太多

文件名:mysqli/mysqli_driver.php

行号:202

回溯:

文件:/application/core/MY_Controller.php 行:7 功能: __构造

文件:/application/libraries/Admin_Controller.php 行:7 功能: __构造

文件:/application/controllers/admin/Dashboard.php 行:16 功能: __构造

文件:index.php 行:315 函数:require_once

【问题讨论】:

  • 因为错误表明这是一个与 MySQL 相关的错误 - 连接太多。你的代码很好。
  • 我是否需要调用 __destructor 并关闭数据库连接 @MuhammadSumonMollaSelim
  • 我觉得你应该试试。

标签: php mysql codeigniter


【解决方案1】:

您需要在 MySQL 配置文件中增加 max_connections 的值。该文件的可能位置是:/etc/my.cnf

在文件上增加max_connections系统变量的值:

[mysqld]
set-variable=max_connections=500

或者,您也可以关闭来自 MySQL 的持久连接。

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent=Off

【讨论】:

  • 但我无法访问托管服务器上的 PHP.ini 文件
  • @Rajan 你在共享主机上吗?
  • 所以,你没有权限。并且共享主机的资源有限,这就是您收到此错误的原因。考虑升级您当前的软件包,或者如果可能的话去云托管:digitalocean.com/?refcode=3a44ac1c4869
猜你喜欢
  • 2012-10-18
  • 2018-08-04
  • 2013-07-22
  • 2018-08-07
  • 2011-06-22
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
相关资源
最近更新 更多