2009-08-18 41 views
18

我使用JDBC連接到MySQL。當它在localhost:3306時,一切正常。爲什麼連接到MySQL服務器這麼慢?

但是,當我將應用程序移動到Intranet中的另一臺計算機上,並使用<Intranet-IP>:3306連接到MySQL數據庫時,大約需要1分鐘才能成功連接到MySQL。這是怎麼回事?

回答

32

那麼它可能是一個DNS問題。您可以通過在配置文件中使用--skip-name-resolve選項啓動mysqld來禁用DNS主機名查找。

這裏瞭解更多詳情:http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

+0

非常感謝! – MemoryLeak 2009-08-18 09:47:29

+0

我有這個問題,事實上它是一個反向dns問題 – acemtp 2011-01-26 15:18:36

+12

要明確,'--skip-name-resolve'將在啓動mysql時用作命令行選項,而'skip-name-resolve'(在前面沒有雙連字符)將在配置文件中使用。 – JYelton 2012-04-30 18:58:36

1

防火牆,互聯網,路由等等會減慢你的連接速度。

你應該把你的數據庫放在內部網上。保持本地和大型防火牆後面。您當然可以在電腦之間安裝防火牆和安全設備。我建議你不要將你的mysql數據庫連接暴露在未經過濾的情況下。

+0

它是一個內聯網IP! – MemoryLeak 2009-08-18 09:40:40

+0

啊,我看到你編輯你的問題:)很高興看到你找到了你的問題的答案。 – Makach 2009-08-18 10:26:39

7

對我來說,這個解決方案,我發現在這裏,如果連接IP6啓用,連接到「localhost」的可能是緩慢的,而不是使用IP地址,127.0.0.1。這對我有效。

my mysql slow to connect problem was solved by this solution

+0

在解決慢速MediaWiki安裝時注意到此問題。 mysql_connect差不多一秒鐘。將配置從localhost更改爲127.0.0.1,並從1021ms更改爲7ms。謝謝! – jmgardn2 2013-06-11 20:08:25

+0

謝謝!這只是解決了我發佈的一個問題。誰知道IPv6最近會混淆最近的MySQL版本。 – 2013-07-24 16:58:24

11

--skip-name-resolve工作對我來說太棒了。

要使其永久,我只是在文件my.ini結束在[mysql]中添加該行:

skip-name-resolve 

,瞧!交易現在飛!