2009-08-18 18 views
18

私はJDBCを使ってMySQLに接続します。それがlocalhost:3306にあるとき、すべてはOKです。MySQLサーバへの接続が遅いのはなぜですか?

私のアプリケーションをイントラネット内の別のコンピュータに移動し、<Intranet-IP>:3306を使用してMySQLデータベースに接続すると、MySQLに正常に接続するのに約1分かかります。これはどうしたの?

答えて

32

これはDNSの問題である可能性があります。構成ファイルで--skip-name-resolveオプションを指定してmysqldを開始すると、DNSホスト名の参照を無効にできます。詳細はこちらをお読み

:IP6接続が有効になっている場合http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

+0

ありがとう! – MemoryLeak

+0

私はこの問題を抱えていましたが、実際にはそれは逆のDNS問題でした。 – acemtp

+12

mysqlを起動するときにコマンドラインオプションとして '--skip-name-resolve'を使用するのに対し、' skip-name-resolve'(正面に二重ハイフンなし)が設定ファイルで使用されます。 – JYelton

1

ファイアウォール、インターネット、ルーティングなどは接続を遅くします。

データベースをイントラネットに配置する必要があります。ローカルにして大きなファイアウォールの背後に置いてください。もちろん、コンピュータ間にはファイアウォールとセキュリティがあります。私はあなたがそのようにフィルタリングされていないインターネットにあなたのmysqlデータベース接続を公開していないことをお勧めしたいと思います。

+0

イントラネットIPです! – MemoryLeak

+0

ああ、私はあなたの質問を編集しました:)あなたの質問に対する答えを見つけたことを知りました。 – Makach

7

を私にとって、それは私がここで見つけるこのソリューションでした、「localhost」をへの接続が遅くなることがあり、代わりにIPアドレス、127.0.0.1を使用します。これは私のために働いた。

my mysql slow to connect problem was solved by this solution

+0

遅いMediaWikiインストールのトラブルシューティング中にこの問題が認識されました。 mysql_connectはほぼ1秒かかりました。 configをlocalhostから127.0.0.1に変更し、1021msから7msに変更しました。ありがとう! – jmgardn2

+0

ありがとう!これはちょうど私が投稿した問題の問題を解決しました。最近のMySQLのバージョンではIPv6がそんなに混乱することを誰が知っていましたか? –

11

--skip-name-resolveは私のために素晴らしい仕事。

skip-name-resolve 

出来上がり:それは永久的な、私はちょうど[mysql]セクション内のファイルmy.iniの末尾に次の行を追加するようにするに

!トランザクションは今すぐ飛ぶ!

関連する問題