mysql SKIP-NAME-RESOLVE 毛病的應用機會形成用戶權限。本站提示廣大學習愛好者:(mysql SKIP-NAME-RESOLVE 毛病的應用機會形成用戶權限)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql SKIP-NAME-RESOLVE 毛病的應用機會形成用戶權限正文
上岸到mysql,檢查過程的信息
show processlist;
發明年夜量的過程的狀況為 login
本來默許的時刻mysql啟動時是不應用 skip-name-resolve選項的,如許的話,從其它主機的銜接會比擬慢,由於mysql會對這個ip做dns反向查詢,招致年夜量的銜接處於 login狀況....
.
處理這個成績有兩個方法
一是參加 skip-name-resolve參數重啟mysql
二是在 /etc/hosts中參加一句 192.168.0.2 server2 個中 192.168.0.2是新加的辦事器的內網ip,server2是新辦事器的主機名
在mysql客戶端上岸mysql辦事器的登錄速度太慢的處理計劃一篇文章中,我引見了若何經由過程在my.ini文件(linux下是my.cnf文件)中添加"SKIP-NAME-RESOLVE"的參數設置,使得客戶端在登錄辦事器的時刻欠亨過主機解析這一關,直接上岸的辦法,以此來進步登錄速度。
這裡要引見一下這類辦法的負面感化,和不公道的機會應用這類辦法會激發的弗成發明的毛病。
起首,回想一下在my.ini文件中添加"SKIP-NAME-RESOLVE"參數來進步拜訪速度的道理:
在沒有設置該參數的時刻,客戶端在上岸要求收回後,辦事器要解析要求者是誰,經由解析,發明登錄者是從別的的電腦登錄的,也就是說不是辦事器本機,那末,辦事器會到mysql.user表中去查找能否有這個用戶,假定辦事器IP是192.168.0.1,而客戶機的IP是192.168.0.2;那末查詢的次序是先找'root'@'192.168.0.2'這個user能否存在,若存在,則婚配這個用戶上岸,並加載權限列表。若沒有該用戶,則查找'root'@'%'這個用戶能否存在,若存在,則加載權限列表。不然,登錄掉敗。
在設置了SKIP-NAME-RESOLVE參數後,客戶真個登錄要求的解析式同下面一樣的,然則在辦事器本機的解析進程卻產生了轉變:辦事器會把在本機登錄的用戶主動解析為'root'@'127.0.0.1';而不是'root'@'localhost';如許一來就壞了,由於我們在辦事器上登錄是為了停止一些保護操作,然則明顯,'root'@'127.0.0.1'這個用戶是被默許為'root'@'%'這個用戶的,這個用戶還沒有足夠得權限去履行一些超等治理員'root'@'localhost'能力履行的年夜作。由於未分派權限。
所以結論是:參加你在辦事器本機上登錄mysql辦事器的話,要末先撤消SKIP-NAME-RESOLVE的參數設置,從新啟動辦事器再上岸,設置完成後,再設置上該參數;要末就給'root'@'127.0.0.1'分派超等治理員權限,但這麼做明顯是不明智的,由於任何人在任何機械上都可以用這個用戶履行治理員操作,條件是曉得了暗碼。
我有一次在mysql辦事器上履行數據庫創立劇本,並同時創立表、觸發器、存儲進程等。成果,老是掉敗,經由了一上午的折騰,最初發明時這個參數形成我以'root'@'127.0.0.1'這個用戶上岸了辦事器,這個用戶沒有創立觸發器的權限。後來,撤消了SKIP-NAME-RESOLVE參數後,履行勝利,再把該參數設置歸去。重啟。OK。
所以,在設置這個參數的時刻必定要留意機會:先用超等治理員將一切的用戶創立好,再將權限分派好以後,才設置這個參數失效。