mysql遠端連線慢的相關問題

來源:互聯網
上載者:User

1,當 mysql client 發起串連請求時,MySql Server 會主動去查 client 的主機名稱。

2,首先尋找Windows系統目錄下 /etc/hosts 檔案,搜尋網域名稱和IP的對應關係。

3,如果hosts檔案沒有,則尋找DNS設定,如果沒有設定DNS伺服器,會立刻返回失敗;如果設定了DNS伺服器,就進行反向解析,直到timeout。

解決辦法

第一種方法 修改Hosts

在 MySql Server 所在伺服器上,修改 Windows 的 hosts 檔案,增加一行記錄,如:

100.ZZZ.YYY.XXX dummy.ju690.cn

然後在 100.ZZZ.YYY.XXX 機器上用 Python 發起串連請求,經測試,可以正常串連,說明 MySql Server 這下可以通過 getnameinfo() 解析出100.ZZZ.YYY.XXX 的主機名稱了。

但這種方法很機械,所以一般採用下面這種方法。

第二種 修改MySql 的設定檔 my.ini

The solution:

Just add skip-name-resolve option to your MySQL configuration file (my.ini).

在 MySql Server 的設定檔 My.ini 中,增加如下兩行:

[mysqld]

skip-name-resolve

它將禁止 MySql Server 對外部串連進行 DNS 解析,使用這一選項可以消除 MySql 進行 DNS 解析的時間。

但需要注意,如果開啟該選項,則所有遠程主機串連授權都要使用IP地址方式,否則MySQL將無法正常處理串連請求。

可能的後果

如果開啟 skip-name-resolve 選項,要確認 MySql 是否採用過主機名稱的授權,

在 mysql 中運行如下命令:

mysql> select user,host from mysql.user where host <> 'localhost' ;

一般會得到以“%”授權(也就是任何地址)的記錄:

+------------------+-------------+

| user | host |

+------------------+-------------+

| root | % |

| user_sync | 192.168.0.113 |

如果有host名是什麼“DB1”“DB2”的,那麼刪除授權表中有 hostanme 的記錄,然後重啟mysqld。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.