-1

php私はMySQL接続を確立するために使用する次のクラスを持っています(これ$ipaddressは完全に有効で、実際のIPアドレスを隠すためだけに使用されます)

class DbConn {

    private $host;
    private $user;
    private $password;
    private $database;
    private $link;
    private $db;

    public function __construct($ipaddress) {
        $this->host = $ipaddress;
        $this->user = 'myuser';
        $this->password = 'mypwd';
        $this->database = 'mydb';
        try {
            $this->link = mysql_connect($this->host, $this->user, $this->password);
            if (!$this->link) {
                throw new Exception('Database connection error');
            }
            $this->db = mysql_select_db($this->database, $this->link);
            if (!$this->db) {
                throw new Exception('Cant use database: '. mysql_error());
            }
        } catch (Exception $e) {
            print_r($e);
            die('Could not connect: ' . mysql_error());
        }
    }
}

ホスト マシン (localhost) で実行すると、$ipaddress完全に動作します...リモート マシンで実行しようとしているので、MySQL サーバーにリモートで接続できます。ただし、次のエラーが発生します。

Warning: mysql_connect(): A connection attempt failed because the connected par
y did not properly respond after a period of time, or established connection fa
led because connected host has failed to respond.
 in C:\performance\browser_perf\DbConn.php on line 18

現在接続しようとしているマシンはWindows 8 X86マシンであり、MySQL サーバーはWindows 7 X64_86マシンにインストールされています。次の質問があります。

  • リモート サーバー ( Win 8) にも MySQL をインストールする必要がありますか? または、phpインターフェイスでその接続を処理できますか?
  • IP アドレスが正しいと断言するにはどうすればよいですか? 使って見ましたipconfig
4

3 に答える 3

2

PHP にはサーバーと対話するクライアントがあり、「クライアント」マシンに MySQL サーバーは必要ありません。ポート 3306 が応答しているかどうかを確認します。1 つのtelnet IPofWin7MySQLServer 3306で十分です

于 2013-08-14T18:52:54.743 に答える
0

ターゲット マシン (Win7) でのみMYSQL Server を実行する必要があります。

于 2013-08-14T18:51:27.697 に答える
0

MySQL サーバーの my.cnf で、bind-address 設定が 127.0.0.1 に設定されているかどうかを確認します。その場合は 0.0.0.0 に変更してください。

于 2013-08-14T18:59:01.667 に答える