Mysql 连接错误
Mysql Connection errors
以下代码是我的config.php
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysql_connect($sDbHost, $sDbUser, $sDbPwd)
or die('MySQL connect failed: '. mysql_error());
mysql_select_db($sDbName,$dbConn)
or die('Cannot select database: '. mysql_error());
?>
出现如下错误
Warning: mysql_connnect(){function_mysql_connect}: Too many
connections in config.php on line 6
它不允许打开任何页面。请给出一些解决方案。
试试这个
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysqli_connect($sDbHost, $sDbUser, $sDbPwd, $sDbName) or die('MySQLi connect failed. ' . mysqli_error($dbConn));
?>
编辑
在文件末尾(或者如果您正在切换控件,在将控件切换到其他页面之前),也关闭 connection
。
mysqli_close($dbConn);
你需要看看here and here
However the default is 151
你可以试试这个
<?php
$sDbHost = "localhost";
$sDbName = "liodir";
$sDbUser = "root";
$sDbPwd = "";
// Create connection
$conn = mysqli_connect($sDbHost , $sDbName , $sDbPwd );
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
或使用您的代码
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysqli_connect($sDbHost, $sDbUser, $sDbPwd, $sDbName);
// Check connection
if (!$dbConn) {
die("Connection failed: " . mysqli_connect_error($dbConn));
}
echo "Connected successfully";
?>
通俗易懂。
你的第二个问题你告诉我你的浏览器没有显示任何错误。
这是解决此问题的方法
- 转到您的文件夹并找到
php.ini
然后找到 error_reporting = 0
然后将其更改为 error_reporting = E_ALL
希望对您有所帮助~
如错误消息所示,您正在尝试打开与已打开最大连接数的数据库的连接。
假设您正在连接到您自己的开发数据库并且是它的唯一用户,并且 my.cnf 文件中的 max_connections 和 max_user_connections 设置为合理的值,下一个要检查的是您的 PHP 代码是否在打开 (a) 新连接之前关闭了它的数据库连接。您的数据库很可能有一堆打开的连接,您的代码已将其保持打开状态。 运行您的程序足够频繁,并且您已达到最大数据库连接数。
就我个人而言,我更喜欢使用 mysql_pconnect() 建立持久连接,该连接保持打开状态,并且在我的程序的初始状态期间不需要多次调用。
现在浏览器没有显示我的文件错误,但将来可能会再次发生。请给一个永久的解决方案。
正如@Frank 所说,这表明 mysql 服务器有足够的客户端打开。你不能再多了。我会建议你-
- 首先不要使用 mysql_connect(),它已被弃用。采用
mysqli_connect().
- 使用后第二次关闭连接
// 这是一个例子
// create the connection
$con = mysqli_connect("HostName","UserName","password","DBName") or die("Some error occurred during connection " . mysqli_error($con));
// Write query
$strSQL = "SELECT username FROM MyTable";
// Execute the query.
$query = mysqli_query($con, $strSQL);
while($result = mysqli_fetch_array($query))
{
echo $result["username"]."
";
}
// Close the connection
mysqli_close($con);
?>
- 第三次在/etc/mysql/my.cnf.
中设置最大连接数适当值
- 第四,如果你有命令提示符,你可以查看有多少进程不再使用,并杀死它们。以下查询显示没有客户端连接 运行 或已打开。
mysql> show processlist \G
****************************** 1. 行 *************** ************
Id: 1
User: root
Host: localhost:58834
db: NULL
Command: Query
Time: 0
State: init
Info: show processlist
1 row in set (0.00 sec)
以下代码是我的config.php
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysql_connect($sDbHost, $sDbUser, $sDbPwd)
or die('MySQL connect failed: '. mysql_error());
mysql_select_db($sDbName,$dbConn)
or die('Cannot select database: '. mysql_error());
?>
出现如下错误
Warning: mysql_connnect(){function_mysql_connect}: Too many connections in config.php on line 6
它不允许打开任何页面。请给出一些解决方案。
试试这个
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysqli_connect($sDbHost, $sDbUser, $sDbPwd, $sDbName) or die('MySQLi connect failed. ' . mysqli_error($dbConn));
?>
编辑
在文件末尾(或者如果您正在切换控件,在将控件切换到其他页面之前),也关闭 connection
。
mysqli_close($dbConn);
你需要看看here and here
However the default is 151
你可以试试这个
<?php
$sDbHost = "localhost";
$sDbName = "liodir";
$sDbUser = "root";
$sDbPwd = "";
// Create connection
$conn = mysqli_connect($sDbHost , $sDbName , $sDbPwd );
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
或使用您的代码
<?php
$sDbHost = 'localhost';
$sDbName = 'liodir';
$sDbUser = 'root';
$sDbPwd = '';
$dbConn = mysqli_connect($sDbHost, $sDbUser, $sDbPwd, $sDbName);
// Check connection
if (!$dbConn) {
die("Connection failed: " . mysqli_connect_error($dbConn));
}
echo "Connected successfully";
?>
通俗易懂。
你的第二个问题你告诉我你的浏览器没有显示任何错误。
这是解决此问题的方法
- 转到您的文件夹并找到
php.ini
然后找到error_reporting = 0
然后将其更改为error_reporting = E_ALL
希望对您有所帮助~
如错误消息所示,您正在尝试打开与已打开最大连接数的数据库的连接。
假设您正在连接到您自己的开发数据库并且是它的唯一用户,并且 my.cnf 文件中的 max_connections 和 max_user_connections 设置为合理的值,下一个要检查的是您的 PHP 代码是否在打开 (a) 新连接之前关闭了它的数据库连接。您的数据库很可能有一堆打开的连接,您的代码已将其保持打开状态。 运行您的程序足够频繁,并且您已达到最大数据库连接数。
就我个人而言,我更喜欢使用 mysql_pconnect() 建立持久连接,该连接保持打开状态,并且在我的程序的初始状态期间不需要多次调用。
现在浏览器没有显示我的文件错误,但将来可能会再次发生。请给一个永久的解决方案。
正如@Frank 所说,这表明 mysql 服务器有足够的客户端打开。你不能再多了。我会建议你-
- 首先不要使用 mysql_connect(),它已被弃用。采用 mysqli_connect().
- 使用后第二次关闭连接
// 这是一个例子
// create the connection
$con = mysqli_connect("HostName","UserName","password","DBName") or die("Some error occurred during connection " . mysqli_error($con));
// Write query
$strSQL = "SELECT username FROM MyTable";
// Execute the query.
$query = mysqli_query($con, $strSQL);
while($result = mysqli_fetch_array($query))
{
echo $result["username"]."
";
}
// Close the connection
mysqli_close($con);
?>
- 第三次在/etc/mysql/my.cnf. 中设置最大连接数适当值
- 第四,如果你有命令提示符,你可以查看有多少进程不再使用,并杀死它们。以下查询显示没有客户端连接 运行 或已打开。
mysql> show processlist \G
****************************** 1. 行 *************** ************
Id: 1
User: root
Host: localhost:58834
db: NULL
Command: Query
Time: 0
State: init
Info: show processlist
1 row in set (0.00 sec)