2017-03-21 8 views
0

Webサーバー上のデータベースに、同じサーバー上のphpファイルでアクセスしようとしています。ページをロードしようとすると、次のエラーが発生します。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のを使用するか、それがの –

+4

可能な重複廃止予定ですので、のmysqlないPDOください[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 
    } 
関連する問題