Error : mysqli::real_connect(): (08004/1040): Too many conne


Error : mysqli::real_connect(): (08004/1040): Too many connections [CodeIgniter v3]

我的网站有一些问题,我得到一个错误,太多的连接。

截图:http://pasteboard.co/Hz7QJQR.png

回溯说我的错误在我的__construct,模型函数list_slider和我的模型在get function:

这是我的控制器代码:
<?php 
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Beranda extends CI_Controller {
    public function __construct()
    {
            parent::__construct();
            $this->load->helper(array('form', 'url', 'html'));
            $this->load->model(array('slider_model', 'slider_2_model', 'group_model', 'contact_model'));
    }
    public function index()
    {
            $data['slider_data'] = $this->slider_model->list_slider();
            $data['slider_2_data'] = $this->slider_2_model->list_slider();
            $data['group_data'] = $this->group_model->list_group();
            $data['contact_data'] = $this->contact_model->list_contact();
            $data['title'] = 'Kitchenware Equipments & Utensiles - norwinskitchenware.com';
            $this->load->view('fend/view_beranda', $data);
    }
}
?>
<<p>,这是我的模型strong>(更新):
<?php
    class Slider_model extends CI_Model {
        function list_slider()
        {
                $this->db->select('*');
                $this->db->from('slider');
                $query = $this->db->get();
                $this->db->close();
                return $query->result();
        }
     }
?>

我已经设置了'pconnect' => FALSEmysql.allow_persistent = OFF

我该怎么办?

谢谢

在你的模型中,你应该关闭你的函数的连接。

如果你在控制器中做

public function __destruct() {  
    $this->db->close();  
}  

应按__destruct()关闭

  1. 先检查你的连接限制。

     SHOW VARIABLES LIKE 'max_connections';
    
  2. 第二次检查你当前的连接

     SHOW STATUS LIKE 'max_used_connections';
    

解决方案:
暂时=比;SET GLOBAL max_connections = 512;

永久=比;/etc/my.cnf change this (max_connections = 512)

For CentOS/RHEL 6: service mysqld restart

For CentOS/RHEL 7: systemctl restart mysqld

我们不需要像Sulthan Allaudeen那样使用$this->db->close()。因为CI &当前一些连接数据库的函数已经配置支持操作完成后自动关闭。

在codeigniter 3.1.2我发现在application/config/database.php属性$db['default']['pconnect']是连接后的平均保持过程,或者我们可以像CI的默认值"是否使用持久连接"一样解释。

这个值应该是FALSE

因为如果它的值是TRUE。您的代码访问了一段时间,并访问数据库达到限制数据库连接(/etc/my.cnf中的max_connections),我们将无法再次连接并将输出错误:mysqli::real_connect(): (08004/1040): Too many connections