2017-03-21 49 views
0

我試圖在同一臺服務器上使用php文件訪問我的Web主機上的數據庫。嘗試加載頁面時,出現以下錯誤:mysql_connect():在'讀取初始通信數據包'時丟失了與MySQL服務器的連接,系統錯誤:111.我無法找到一個很好的答案。以下是我正在使用的php。我將我的數據庫的IP地址設置爲我的主機名。嘗試訪問服務器上的數據庫時出錯:丟失與MySQL服務器的連接

<?php 
    $con = mysql_connect("10.123.0.209:3306","username", "password"); 
    if (!$con){ 
    die("cannot connect: " . mysql_error()); 
    } 

    mysql_select_db("matmac78_macy", $con); 
    $sql = "SELECT * FROM countries"; 
    $mydata = mysql_query($sql, $con); 

    while ($record = mysql_fetch_array($mydata)){ 
    echo $record['country'] . " " . $record['population'] 
    echo"<br/>"; 
    } 

    mysql_close($con); 

    ?> 

任何幫助將不勝感激!

+4

請使用庫MySQLi或PDO不是mysql的,因爲它是過時的 –

+4

可能的複製[忘記連接MySQL服務器,系統錯誤:111](http://stackoverflow.com/questions/8495684/lost-connection-to -mysql-server-system-error-111) – Condorcho

+0

你可以使用命令行連接到mysql服務器嗎?從主機上刪除':3306'。 – Dimi

回答

0

您應該切換到使用PHP's PDO連接協議。

$username = 'username'; 
$password = 'password'; 
$dbName = 'matmac78_macy'; 
$host = '10.123.0.209:3306'; 


try { 
     $this->database = new \PDO("mysql:host={$this->host};dbname={$this->dbName}", $this->username, $this->password); 
     $this->database->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 
     $this->database->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); 
     return $this->database; 
    } catch (\PDOException $e) { 
     throw new \Exception("Could not establish database connection. \n"); #Push error message 
    } 
相關問題