簡體   English   中英

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());
?>

它給出了以下錯誤

警告:mysql_connnect(){function_mysql_connect}:第6行的config.php中連接過多

它不允許打開任何頁面。 請提供一些解決方案。

如錯誤消息所示,您正在嘗試打開與已打開最大連接數的數據庫的連接。

假設您正在連接到自己的開發數據庫並且是它的唯一用戶,並且my.cnf文件中的max_connections和max_user_connections設置為合理的值,那么接下來要檢查的是您的PHP代碼是否關閉了其數據庫連接(在打開新連接之前。 您的數據庫很可能具有一堆打開的連接,而您的代碼仍處於打開狀態。 經常運行程序,可以最大程度地增加數據庫連接的最大數量。

就我個人而言,我更喜歡使用mysql_pconnect()建立持久連接,該連接保持打開狀態,並且在程序的初始化狀態期間不需要多次調用。

嘗試這個

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

你需要看看這里這里

但是默認值為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

希望能有所幫助〜

現在瀏覽器沒有顯示我的文件錯誤,但將來可能再次發生。 請提供永久解決方案。

正如@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. 第四,如果您有命令提示符,則可以查看有多少個不再使用的進程,並殺死它們。 以下查詢顯示未運行或打開任何客戶端連接。

mysql>顯示進程列表\\ 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM