国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql啟用skip-name-resolve出現Warning及用戶權限錯誤解決辦法

2024-07-24 12:38:49
字體:
來源:轉載
供稿:網友

本文章總結了mysql啟用skip-name-resolve出現Warning及用戶權限錯誤解決辦法,有需要了解的同學可參考一下.

120726 11:57:22 [Warning] 'user' entry 'root@localhost.localdomain' ignored in --skip-name-resolve mode.

120726 11:57:22 [Warning] 'user' entry '@localhost.localdomain' ignored in --skip-name-resolve mode.//Vevb.com

skip-name-resolve是禁用dns解析,避免網絡DNS解析服務引發訪問MYSQL的錯誤,一般應當啟用.

啟用后,在mysql的授權表中就不能使用主機名了,只能使用IP,出現此警告是由于mysql 表中已經存在有 localhost.localdomain 帳號信息.

我們把它刪除就好了,代碼如下:

  1. mysql>use mysql;  
  2. mysql> delete from user where HOST='localhost.localdomain';  
  3. Query OK, 2 rows affected (0.00 sec)   

重啟MYSQL,發現警告已經沒有啦.

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。

所以,在設置這個參數的時候一定要注意時機:先用超級管理員將所有的用戶創建好,再將權限分配好之后,才設置這個參數生效。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富裕县| 南开区| 尚志市| 龙井市| 陈巴尔虎旗| 冕宁县| 通道| 旬阳县| 缙云县| 铜山县| 乌兰浩特市| 白山市| 咸阳市| 盐亭县| 丹巴县| 屏南县| 武邑县| 海原县| 黄梅县| 泗洪县| 景宁| 封丘县| 正宁县| 青州市| 靖州| 尼勒克县| 龙南县| 铅山县| 天台县| 邮箱| 岚皋县| 湖口县| 观塘区| 浦江县| 云林县| 恭城| 江城| 小金县| 浮山县| 海门市| 稷山县|