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";  
?>

通俗易懂。

你的第二个问题你告诉我你的浏览器没有显示任何错误。

这是解决此问题的方法

  1. 转到您的文件夹并找到 php.ini 然后找到 error_reporting = 0 然后将其更改为 error_reporting = E_ALL

希望对您有所帮助~

如错误消息所示,您正在尝试打开与已打开最大连接数的数据库的连接。

假设您正在连接到您自己的开发数据库并且是它的唯一用户,并且 my.cnf 文件中的 max_connections 和 max_user_connections 设置为合理的值,下一个要检查的是您的 PHP 代码是否在打开 (a) 新连接之前关闭了它的数据库连接。您的数据库很可能有一堆打开的连接,您的代码已将其保持打开状态。 运行您的程序足够频繁,并且您已达到最大数据库连接数。

就我个人而言,我更喜欢使用 mysql_pconnect() 建立持久连接,该连接保持打开状态,并且在我的程序的初始状态期间不需要多次调用。

现在浏览器没有显示我的文件错误,但将来可能会再次发生。请给一个永久的解决方案。

正如@Frank 所说,这表明 mysql 服务器有足够的客户端打开。你不能再多了。我会建议你-

  1. 首先不要使用 mysql_connect(),它已被弃用。采用 mysqli_connect().
  2. 使用后第二次关闭连接

// 这是一个例子

// 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);

?>
  1. 第三次在/etc/mysql/my.cnf.
  2. 中设置最大连接数适当值
  3. 第四,如果你有命令提示符,你可以查看有多少进程不再使用,并杀死它们。以下查询显示没有客户端连接 运行 或已打开。

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)