连接MySql速度慢的解决方法(skip-name-resolve)
最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。
解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。
原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。
附:HowMySQLusesDNS
Whenanewthreadconnectstomysqld,mysqldwillspawnanewthreadtohandletherequest.Thisthreadwillfirstcheckifthehostnameisinthehostnamecache.Ifnotthethreadwillcallgethostbyaddr_r()andgethostbyname_r()toresolvethehostname.
Iftheoperatingsystemdoesn'tsupporttheabovethread-safecalls,thethreadwilllockamutexandcallgethostbyaddr()andgethostbyname()instead.Notethatinthiscasenootherthreadcanresolveotherhostnamesthatisnotinthehostnamecacheuntilthefirstthreadisready.
YoucandisableDNShostlookupbystartingmysqldwith--skip-name-resolve.InthiscaseyoucanhoweveronlyuseIPnamesintheMySQLprivilegetables.
IfyouhaveaveryslowDNSandmanyhosts,youcangetmoreperformancebyeitherdisablingDNSlookupwith--skip-name-resolveorbyincreasingtheHOST_CACHE_SIZEdefine(default:128)andrecompilemysqld.
Youcandisablethehostnamecachewith--skip-host-cache.YoucanclearthehostnamecachewithFLUSHHOSTSormysqladminflush-hosts.
Ifyoudon'twanttoallowconnectionsoverTCP/IP,youcandothisbystartingmysqldwith--skip-networking.
或者host中添加
192.168.1.21N-21