2012-01-16 8 views
0

サーバーBのサーバーAのMYSQLデータベースに接続しようとしています。私たちが作業しているホスティング会社は、サーバーAとサーバーBの両方を所有しています。これは外部DB接続での最初の試みです。私はコードが、私は外部のMySQLデータベースへの接続に関してはGoogleで検索している他のほとんどのコードのように見えるサーバBからサーバA上のMySQLデータベースに接続しようとするために、次のPHPコードを書かれているphp-sql接続の失敗をサーバー設定に絞り込みましたか?

..

$IPAddress_O_fServer_A = 'XXX.XX.XX.XXX'; 
$Server_A_DB_Pass = 'P-WORD'; 
$Server_A_DB_User = 'U-NAME'; 
$con = mysql_connect($IPAddress_Of_Server_A, $Server_A_DB_User, $Server_A_DB_Pass); 

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'XXX.XX.XX.XXX' (4) in /var/www/web12/web/dev/front-end.php on line 10 
Could not connect: Can't connect to MySQL server on XXX.XX.XX.XXX' (4) 

...ライン10にmysql_connect()の呼び出しです:このコードは、サーバーB上で実行されたとき

は今、私はこのエラーを取得します。

誰もこのコードに間違いがありますか? 接続が機能しない場合は、サーバーの外部接続許可またはその他の設定に問題があると言うのは安全でしょうか?

ありがとうございます!

+0

(1)http://dev.mysql.com/doc/refman/5.5/en/access-denied.html(2)http://www.cyberciti.biz/tips/how-do -i-enable-remote-access-to-mysql-database-server.html –

+0

ユーザU-NAMEはlocalhostでテストするときにデータベースに接続できますか? – BartekR

+0

おそらく、ローカルホストの外部で接続を受け付けないセキュリティ保護されたサーバです... –

答えて

0

まず、thisを見て、システムがリモートアクセスを許可するように設定されていることを確認してください。

第2に、ユーザー名「U-NAME」は実際には「U-NAME @ localhost」であり、そのように設定されたアクセス許可を持ちます。たとえば、次のGRANT文を考えてみましょう。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'localhost' 

ユーザ名「U-NAME」にはデータベースfoo、テーブルバーからエントリを選択する権限がありますが、ローカルホストアクセスのみです。リモートを許可するには、以下のように許可を与える必要があります。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'xx.xx.xx.xx' 
関連する問題