“无法连接。连接太多”MySQLi中的错误

时间:2014-06-18 16:32:56

标签: php mysqli runtime-error

我有以下代码

function openDBConn($params){
    $conn_mode = $params['conn_mode'];
    $db_conn = $params['db_conn'];

    //create connections
    if(empty($db_conn->info)) {
        $db_conn = new mysqli("localhost", $user, $password, "database");
        $db_conn->set_charset('UTF8'); 
        $mysqli_error = $db_conn->connect_error;
    }

    if($mysqli_error !== NULL){ 
        die('Could not connect <br/>'. $mysqli_error); 
    }else{ 
        return $db_conn; 
    }
}

//close db connection
function closeDBConn( $params ){
    $db_conn = $params['db_conn'];
    $db_conn->close;
}

//used as below
$db_conn = openDBConn();

save_new_post( $post_txt, $db_conn );

closeDBConn( array('db_conn'=>$db_conn));

有时,我得到&#34;无法连接。连接太多&#34;错误。 当我有谷歌机器人扫描我的网站时,这往往会发生。

自MySQL升级到MySQLi以来,这个问题似乎已经开始了。 关于如何确保所有连接都关闭,有什么建议吗?

由于

3 个答案:

答案 0 :(得分:2)

您需要增加与MySQL服务器的连接数(默认值只有100,通常每个页面加载消耗一个连接)

修改/etc/my.cnf

  

max_connections = 250

然后重启MySQL

  

service mysqld restart

http://major.io/2007/01/24/increase-mysql-connection-limit/

答案 1 :(得分:0)

某些托管服务商对您可以拥有的打开数据库连接数量进行了严格限制。也许您想联系您的主机以了解您可以打开多少人。对于流量负载较高的网站,更多连接可能会有所帮助。

答案 2 :(得分:0)

您是否可以直接访问服务器,还是托管解决方案?

如果您有直接访问权限,可以查看mySQL配置文件以查看允许的连接数量并增加它们。

如果您不想,请联系您的网站托管服务商,了解有关增加限额的信息,以及是否符合规定。