我有以下代码
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));
不时地,我得到"无法连接"。连接太多"错误。当我让谷歌机器人扫描我的网站时,这种情况往往会发生。
这个问题似乎从MySQL升级到MySQLi就开始了。有什么建议,如何确保所有连接关闭?
谢谢
您需要增加到MySQL服务器的连接数(默认只有100个,通常每个页面加载消耗一个连接)
编辑/etc/my.cnf
max_connections = 250
然后重启MySQL
http://major.io/2007/01/24/increase-mysql-connection-limit/service mysqld restart
有些主机对允许打开的数据库连接数量有硬性限制。也许你想联系你的房东,了解你可以打开多少个。对于高流量负载的网站,更多的连接是有帮助的。
您可以直接访问服务器还是使用托管解决方案?
如果你有直接访问,你可以检查mySQL配置文件,看看允许多少连接,并增加它。
如果你不这样做,你可能需要联系你的网络主机关于增加限制,看看他们是否会遵守。