MySQL遠程訪問速度緩慢的解決和分析
環境介紹:
OS:RHEL5.4
MySQL:5.5.10
異常情景:
數據庫一直處於機房內網中訪問和使用,一天一個國外節點需要訪問數據庫,開通訪問權限後,他們反饋很慢;
隨即在防火牆上,開通自己公司IP進行訪問,也有類似問題!
開始排錯原因:
1.檢查網絡是否穩定?得到答案,ping ttl值很穩定,ssh也正常;
2.檢查MySQL運行狀態,無異常發現;
3.突然想起了,MySQL利用DNS做解析的參數有可能在規劃時,沒有做設置!!!
解決辦法:
1.驗證參數
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | OFF |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.00 sec)
mysql> show variables like 'skip_%';
2.停庫,修改my.cnf裡面參數
[mysqld]
skip_name_resolve
3.重啟數據庫後驗證:
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.03 sec)
該選項用於禁用DNS解析,連接速度會快很多。不過,這樣就不能在MySQL的授權表中使用主機名而只能用ip地址。