問題現象是這樣的:
我在一台機器上(61.183.23.23)啟動了一個mysql,然後開通一個賬号可以從127.0.0.1或者從61.183.23.23通路。但是遇到一個問題就是使用下面兩個指令行通路的時候,速度差别非常大:
mysql –h 127.0.0.1 –u user
mysql –h 61.183.23.23 –u user
然後我使用ping,判斷兩個ip的速度差不多。
使用127.0.0.1的ip速度比另一個快太多了。雖然說這裡的61.183.23.23需要去外網走一圈,但是速度差别怎麼會差這麼多。
解決辦法:
mysql使用skip-name-resolve禁止掉dns的查詢。
mysql會在使用者登入過程中對用戶端ip進行dns反查,不管你是使用ip登入還是域名登入,這個反查的過程都是在的。是以如果你的mysql所在的伺服器的dns有問題或者品質不好,那麼就有可能造成我遇到的這個問題,dns解析出現問題。
修改mysql配置檔案
[mysqld]
skip-name-resolve
補充:
做個提醒,增加skip-name-resolve有可能導緻賬号失效,比如我原先的賬号是yejianfeng@localhost,然後其實我使用mysql -h127.0.0.1 -uyejianfeng 是可以登入的。但是一旦加上了skip-name-resolve,就不能登入的了。需要加上賬号[email protected]