MySQL skip_name_resolve參數的設置


Skip_name_resolve

Dynamic No
Default Value OFF

默認值是off,也就是在檢查客戶端連接時在第一次要解析主機名(如果有開啟DNS服務器,則做 “ IP->hostname & hostname->IP反向解析 ”;如沒有開啟DNS,則不做解析);

連接成功則將信息存儲在host cache中。

Host Cache Operation

MySQL服務用host cache來保存非本地TCP連接,不保存127.0.0.1、::1和Unix socket創建的連接。

>由於保存了IP-to-Host列表,MySQL服務避免每次去做DNS檢查,只在第一次做解析和反解析

>host cache保存着一些連接錯誤信息,max_connect_errors決定了連接錯誤次數后鎖定該IP,鎖定后需要 Flushing the Host Cache來解除

host cache的行記錄如下:

1.當首次TCP客戶端連接通過一個給定的地址訪問MySQL服務,一行新的cache記錄被創建,記錄IP,host name,client 查找檢驗標識。初始,host name是null,標識是false,此條目還用於

   后續同樣IP的客戶端連接

2.如果檢驗標識是false,MySQL服務嘗試IP-to-host name-to-IP DNS這樣的解決方式。如果成功則更新標識為true。如果嘗試的解決方式不成功,則分永久和短暫,如果永久失敗則置host

   name為null,flag為true;如果是短暫失敗則保持host name為null,flag為false。

設置host cache的大小

[mysqld]
host_cache_size=200

當連接失敗達到max_connect_error設置的次數,該host將被鎖定

[mysqld]
max_connect_errors=10000

客戶端連接

1.一個應用的新建的客戶端連接過來,MySQL服務首先檢查host name是否在host cache,如果是,服務決定是否繼續提供請求看該主機是否被鎖住;

2.如果客戶端連接的不在cache,服務試圖去解析host name,嘗試IP-to-host name-to-IP DNS這樣的解決方式,如果一切正常則存儲信息到host cache;

3.如果cache滿了,則最近最少用的記錄則被丟棄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM