2011-08-03 6 views
1

MySQLサーバに送信するクエリを分析したいと思います。 、私は、IP 127.0.0.3と私自身の切断を作成したので、ポート3303 を聞いmysql_connect PHP関数を使用して自分のサーバに接続する方法

if (mysql_connect('127.0.0.1', 'root', '12345')) { 
     mysql_select_db('db'); 
    } else { 
     print "connection failed...."; 
    } 

: またプログラム(送信クエリ)のコードは、ここではMySQLサーバに接続するための関数であるため、同じ する必要があります私はこのように、この機能を書き換える:

if (mysql_connect('127.0.0.3:3303', 'root', '12345')) { 
      mysql_select_db('db'); 
     } else { 
      print "connection failed...."; 
     } 

私は私のサーバーが接続を見接続しようが、そのようなログイン(「ルート」)やパスワードなどの任意のデータを、受信しない

。だから私のサーバプログラムからMySQLに接続することはできません

ベストソリューションは何ですか? ありがとう

+1

IPアドレスの代わりにlocal_hostを試してください –

+2

@Michael:ローカルホストです。そして、私は気がついたことがあります:127.0.0.3 –

+0

Webアプリケーションでこれを使用することを考えているなら、しないでください。 PDOを使用するhttp://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/ – Calum

答えて

1

よくあるのは、標準のmysqlポートは3306です。127.0.0.3の設定ファイルをチェックして、設定されているポートとそのポートをブロックしているファイアウォールがないことを確認します。

の推測として、私はあなたが設定ファイルに

# skip-networking 

を持っていることを確認します。一部のインストールでは、skip-networkingが有効になっており、デフォルトではとなり、サーバーは他のコンピュータからの接続をリッスンしません。

また、ローカルホスト用に予約されているため、サーバは127.0.0.xにパケットを転送しない可能性があります。これを確認するには、2台のコンピュータ間で基本的なネットワークが動作していることを確認します(ping、traceroute)。

+0

Skip-networking is disabled – vladimar

+0

mysql_connect()はデータを送信する必要がありますが、それを読み取ることはできません。 これは私の問題です – vladimar

+0

@vladimar mysql_connect()を非難する前に、基本的なネットワーキングをバックアップしてテストする必要があります。 –

0

固定 "接続に失敗しました"というエラーメッセージが表示されるのは、デバッグの目的ではまったく役に立たないということです。代わりにこれを試してみてください:

if (mysql_connect('127.0.0.3:3303', 'root', '12345')) { 
    ... 
} else { 
    die(mysql_error()); 
} 

は、MySQLが問題だけではなく、問題があると言って、暗い中で周り暴れるのであり、正確に何を教えてくれてもらいます。