2011-11-22 18 views
11

CentOS 5.7とcPanel-CURRENTの両方を実行する2つのサーバーがあります。 1つはx86で、もう1つはx64です。どちらもApache 2.2.21、PHP 5.3.8、MySQL 5.1を使用しています。PHP:リモートMySQL接続が非常に遅い

いずれかのサーバーでローカルデータベースにクエリを実行すると、結果がすぐに返されます。この場合、数千の結果が返されます。ただし、1つのサーバーから別のサーバーに同じクエリを実行すると、クエリには10秒以上かかります。

私は同じクエリを使用してワークステーションからリモートデータベースを照会するためにMySQL Workbench 5.2を使用すると、1秒未満で完了し、PHPやその他のサーバ関連の問題があると思います。

誰もこの問題が発生する前に発生しており、解決方法を知っていますか?どんな助けでも大歓迎です。

+0

mysql_pconnect()http://www.php.net/manual/en/function.mysql-pconnect.phpが役に立ちます。 – YamahaSY

+0

永続的な接続を使用することは役に立ちません。クエリは完了するのに同じ時間がかかります。 – Reado

+0

あなたのデータベースは少し異なるかもしれませんか?例えば。ローカルマシン上のすべてのインデックスがリモートサーバー上に存在するわけではありません。 PHPはリモートのmysqlサーバでうまく動作しますが、おそらくいくつかの問題があります。ネットワーク接続はどうですか? 'Ping'リモートサーバー – Oroboros102

答えて

11

最初の推測:DNSに問題があり、my.cnfで--skip-name-resolveオプションを使用するか、MySQLグラントテーブルでIPアドレスのみを使用することができます。

第2の推測:セキュリティレベルに問題がある可能性があります。一時的にselinuxまたはファイアウォールを無効にしてからテストを再実行することをお勧めします。

+0

PHPとMySQL Workbenchの両方でリモートサーバに接続するためにIPアドレスを使用しています。また、 "--skip-name-resolve"が設定ファイルにあり、サーバが再起動されています。最後に、selinuxは無効になり(cPanelを実行するための要件の1つ)、ファイアウォールを無効にしようとしましたが、無駄にしました。 – Reado

+0

あなたは改善が見受けられましたか?接続機能に要する時間を教えてください。私はあなたの質問から実際にはっきりしていない時間が正確に何であるのだろうと思っています。 –

+3

設定ファイルでは、 "--skip-name-resolve"ではなく "skip-name-resolve"でなければなりません。先行するダッシュは、mysqldサービスを起動するときにパラメータとして使用されている場合のみです。 –

4

PHP/MySQLアプリケーションでこの問題が発生しました。

「skip-name-resolve」をmy.iniに追加すると、私のために修正されたことを分かりやすくしたいと思います。デスクトップ1の私のアプリケーションがIPアドレスを使ってデスクトップ2(mysql)にアクセスしていたので、これは少し混乱しました。私は2つのWindows 7デスクトップの間に行きます。