最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql could not be resolved: Name or service not known

 更新時間:2015年08月10日 22:52:28   投稿:mdxy-dxy  
今天查看mysql日志的時候發(fā)現(xiàn)[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known,原來是mysql DNS反解:skip-name-resolve的原因,屏蔽一下就可以了

問題: mysql DNS反解:skip-name-resolve

錯誤日志有類似警告:


1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
2.120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known
3.120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known

通過show processlist發(fā)現(xiàn)大量類似如下的連接:

1.|592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|
2.|593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|
3.|594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|

skip-name-resolve 參數(shù)的作用:不再進行反解析(ip不反解成域名),這樣可以加快數(shù)據(jù)庫的反應(yīng)時間。

修改配置文件添加并需要重啟:

復制代碼 代碼如下:

[mysqld]
skip-name-resolve

其實就是在[mysqld]下面一行加入skip-name-resolve重啟mysql服務(wù)就可以了。

下面是更加詳細的解釋:

現(xiàn)象:

程序連接mysql時,mysql的error.log里面提示:

[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known

原因:

Mysql數(shù)據(jù)庫服務(wù)器沒有配置 /etc/hosts,也沒有DNS服務(wù),導致mysqld線程解析IP對應(yīng)的主機名時,解析失敗。

參考資料:

Mysql域名解析:

當一個新的客戶端嘗試跟mysqld創(chuàng)建連接時,mysqld產(chǎn)生一個新線程來處理這個請求。新線程會先檢查請求建立連接的主機名是否在Mysql的主機名緩沖中,如果不在,線程會嘗試去解析請求連接的主機名。

解析的邏輯如下:

a. Mysql線程通過gethostbyaddr()把獲取的IP地址解析成主機名,然后通過gethostbyname()把獲取的主機名解析成IP地址,保障主機名和IP地址對應(yīng)關(guān)系的準確;

b. 如果操作系統(tǒng)支持使用安全進程的gethostbyaddr_r()和gethostbyname_r() 調(diào)用,Mysqld線程可以用它倆來優(yōu)化主機名解析;

c. 如果操作系統(tǒng)不支持安全線程調(diào)用,Mysqld進程先做一個互斥鎖,然后調(diào)用gethostbyaddr()和gethostbyname()解析主機名。此時,在第一個進程釋放掉主機名緩沖池的主機名之前,其它進程無法再次解析這個主機名; <-------MySQL手冊里面在此處說的host name ,意思應(yīng)該是指同一個IP地址和對應(yīng)的第一個主機名關(guān)系。

在啟動mysqld進程是,可以使用 --skip-name-resolve 參數(shù)禁用DNS的主機名解析功能,禁用該功能后,在MySQL授權(quán)表里面,你只能使用IP地址。

如果你所處環(huán)境的DNS非常慢 或者 有很多主機, 你可以通過禁用DNS解析功能--skip-name-resolve 或者 提高 HOST_CACHE_SIZE大小 來提升數(shù)據(jù)庫的響應(yīng)效率。

禁用主機名緩沖的發(fā)方法: 使用--skip-host-cache 參數(shù); 刷新主機名緩沖區(qū): 執(zhí)行 flush hosts 或者執(zhí)行mysqladmin flush-hosts;

禁用TCP/IP連接: 使用--skip-networking參數(shù)。

實驗:
# grep 192.168.1.1 /etc/hosts
192.168.1.1 hostname_online

sql> grant usage on *.* to root@'h_tt_%' identified by 'root';

sql> flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES) ### IP解析為hostname_online,不是h_tt_%,訪問被拒。

# grep 192.168.1.1 /etc/hosts

192.168.1.1 hostname_online

192.168.1.1 h_tt_1

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES)#### mysqld沒有刷新主機池緩沖池中的IP和主機名信息,此時IP對應(yīng)hostname_online

sql> flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES) #### mysqld解析了/etc/hosts里面同一個IP對應(yīng)的第一個主機名關(guān)系時,就不再解析后面這個IP對應(yīng)的主機名關(guān)系

# grep 192.168.1.1 /etc/hosts

192.168.1.1 h_tt_1

192.168.1.1 hostname_online

sql> flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

sql> exit

【實驗:】驗證解析相同IP對應(yīng)的第一個主機名關(guān)系后,就不再解析相同IP:

Sql>grant usage on *.* to root@'h_tt_%' identified by ‘root';

Sql>flush hosts;

# grep h_tt /etc/hosts # grep h_tt /etc/hosts

192.168.1.1hostname_online 192.168.1.1h_tt_1

192.168.1.1h_tt_1 192,168.1.2h_tt_1

訪問mysql被拒絕; 從兩個IP都可以訪問mysql.

【結(jié)論】

此實驗驗證了,上述mysql手冊中對"How MySQL Uses DNS"的解釋。

即mysqld線程解析/etc/hosts是,是以IP作為唯一標識的,及時一個IP對應(yīng)了多個主機名,但是mysqld線程只解析第一條對應(yīng)關(guān)系,不論后面有幾條這個IP對應(yīng)的不同主機名的記錄,Mysqld進程都不會去解析,都是無效的。

【適用環(huán)境:】

沒有DNS服務(wù)器,主機非常非常多,或者 不想維護/etc/hosts里面手動配置的IP和主機名對應(yīng)列表時,可以在mysql授權(quán)時執(zhí)行主機名為"%" 或者禁用IP和主機名解析功能(--skip-name-resolve)。

相關(guān)文章

  • mysql全量備份、增量備份實現(xiàn)方法

    mysql全量備份、增量備份實現(xiàn)方法

    這篇文章主要介紹了mysql全量備份、增量備份實現(xiàn)方法,需要的朋友可以參考下
    2016-12-12
  • 在windows10上安裝mysql詳細圖文教程

    在windows10上安裝mysql詳細圖文教程

    這篇文章主要介紹了在windows10上安裝mysql詳細圖文教程,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • Mysql5.5升級到5.6的真實操作步驟示例

    Mysql5.5升級到5.6的真實操作步驟示例

    MySQL5.5升級到5.6涉及下載升級包、數(shù)據(jù)權(quán)限備份、配置文件備份、解壓安裝、數(shù)據(jù)導入、重啟服務(wù)、配置恢復等步驟
    2024-11-11
  • Mysql中關(guān)于on,in,as,where的區(qū)別

    Mysql中關(guān)于on,in,as,where的區(qū)別

    這篇文章主要介紹了Mysql中關(guān)于on,in,as,where的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL忘記密碼恢復密碼的實現(xiàn)方法

    MySQL忘記密碼恢復密碼的實現(xiàn)方法

    流傳較廣的方法,mysql中文參考手冊上的,各位vps主機租用客戶和服務(wù)器托管用戶忘記mysql5.1管理員密碼時,可以使用這種方法破解下
    2008-07-07
  • MySQL5.7.35雙主搭建的實現(xiàn)

    MySQL5.7.35雙主搭建的實現(xiàn)

    本文介紹了配置MySQL5.7.35的雙主復制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • mysql游標的原理與用法實例分析

    mysql游標的原理與用法實例分析

    這篇文章主要介紹了mysql游標的原理與用法,結(jié)合實例形式分析了mysql游標的概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 將MySQL數(shù)據(jù)導出為sql文件的最佳實踐

    將MySQL數(shù)據(jù)導出為sql文件的最佳實踐

    這篇文章主要給大家介紹了如何將MySQL數(shù)據(jù)導出為sql文件,避免數(shù)據(jù)丟失的最佳實踐,文中有詳細的導出流程步驟,跟著文中的步驟就可以導出文件,需要的朋友可以借鑒參考
    2023-07-07
  • mysql修復數(shù)據(jù)表的命令方法

    mysql修復數(shù)據(jù)表的命令方法

    網(wǎng)站運行中mysql的數(shù)據(jù)表難免會出現(xiàn)類似"is marked as crashed and should be repaired"的錯誤,我們可以用下面這個命令修復
    2014-02-02
  • 為什么MySQL不建議使用SELECT?*

    為什么MySQL不建議使用SELECT?*

    這篇文章主要介紹了為什么MySQL不建議使用SELECT?*,不要使用SELECT?*”幾乎已經(jīng)成為了MySQL使用的一條金科玉律,下面文章我們就來看看具體的原因,需要的朋友可以參考一下
    2022-04-04

最新評論

陵水| 曲麻莱县| 勐海县| 利辛县| 沙洋县| 桂东县| 阳山县| 永修县| 樟树市| 新营市| 旌德县| 南华县| 永泰县| 娱乐| 汶上县| 青神县| 武邑县| 家居| 铜山县| 遂昌县| 疏附县| 兴国县| 甘南县| 岑巩县| 麻阳| 长汀县| 玉环县| 汶川县| 板桥市| 阳原县| 京山县| 海南省| 镇安县| 深圳市| 临泽县| 江孜县| 通海县| 教育| 西宁市| 南京市| 青神县|