2012-03-09 11 views
1

別のサーバー上のデータベースにアクセスしたいとします。 私のデータベースはサーバAにあります。 ユーザがWebページにアクセスするのはサーバBにあります。 config.phpファイルはサーバAとサーバBの間の第三者または中間として動作します。config.php必要に応じてデータベースにアクセスし、サーバーBのユーザーにデータを送信してください。 config.phpを使用してURLパラメータを使用して大量のデータを渡しています。別のサーバーからのデータベースへのアクセス

しかし、それは私に

「禁断のあなたは、このサーバ上の/DataScripts/home.phpにアクセスする権限がありません

。」などのエラーを示してい

誰でもこのエラーは何ですか、私は何をすることができますか?

+0

同じネットワーク上にあるサーバーはありますか?その場合は、複雑なAPIを使用するのではなく、ネットワーク経由でデータベースに接続してください。また、禁止されたエラーはPHPのようにApacheのように聞こえる。 – Corbin

+0

サーバAのデータベースにサーバBのデータベースにリモートアクセスしようとすると、リモートアクセスを許可するようにDBを設定する必要があります。 – Badr

+0

'chmod 777 home.php'は役に立ちますか?これは、問題を解決する最善の方法ではなく、デバッグのステップです。これは、Linuxサーバーを使用している場合にのみ可能です。 – nak

答えて

1

これはMySQLであり、サーバーB、ssh両方のサーバーを制御し、my.cnfを編集すると仮定します。 [mysqld]セクションまでスクロールし、次の行を追加します。

bind-address=SERVER-B-IP-ADDRESS 

保存して終了します。 mysqlを起動します。

タイプ以下の擬似SQL:

GRANT ALL ON *.* TO [email protected]'SERVER-A-IP' IDENTIFIED BY 'PASSWORD'; 

、ファイアウォールの設定によっては、サーバーAのIPアドレスをホワイトリストだけでなく、リモート・アクセス・リストに追加する必要があります。

+0

私はパラメータを渡さないと、その動作します。しかし、私がパラメータで大量のデータを渡しているとき、私が問題に言及したようにエラーを表示します。 – Hardik

0

/DataScripts/home.phpのアクセス許可を確認し、アクセス可能であることを確認することをお勧めします。

ServerBで実行されているスクリプトから、ServerA上のDBに直接接続してみませんか?

+0

私は何もパラメータを渡さないと、その作品。しかし、私がパラメータで大量のデータを渡しているとき、私が問題に言及したようにエラーを表示します。 – Hardik

+0

どのようにデータを渡していますか? 'GET'や' POST'を通して?それが 'GET'を介している場合は、結果のクエリ文字列を見て、それが適切に形成されていることを確認します。 HTTPサーバーが、アクセスしようとしているファイル名の一部としてクエリ文字列を解釈している可能性があります(これにより、禁止されたエラーが表示されます)。 –

関連する問題