溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法

發(fā)布時間:2021-12-01 17:37:31 來源:億速云 閱讀:718 作者:柒染 欄目:云計算

本篇文章為大家展示了 mysql授權l(xiāng)ocalhost&%區(qū)別以及一直授權錯誤的解決辦法,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

首先還是附上openstack文檔,以此作為例子講解為什么賦權了%而卻一直報權限錯誤!

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法


 


 

mysql -u root -pyunjisuan 

CREATE DATABASE keystone;
   

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'  IDENTIFIED BY 'KEYSTONE_DBPASS';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';


 

正確理解,這里對用了%則代表了所有的host都能遠程訪問該mysql。但是查詢mysql官方文檔有說明,%并不包括localhost。這樣呢,因此上述,對localhost和%都進行了賦權。


 

接下來看下hosts文件:

vim /etc/hosts

 


配置好keystone.conf文件:

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法  

查看keystone日志:  

tailf /var/log/keystone/keystone.log  


 

執(zhí)行同步數(shù)據(jù)庫命令:

su -s /bin/sh -c "keystone-manage db_sync">


 


 

日志出現(xiàn)了讓人頭大的權限錯誤:

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法  


這個錯誤估計困擾過很多安裝openstack的人,至少我從openstack e版到現(xiàn)在juno版本,都經(jīng)常會報這種無厘頭錯誤,

顯然這個一看就是權限錯誤,一般我會采用直接將keystone。conf的connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone配置為

connection = mysql://keystone:KEYSTONE_DBPASS@192.168.38.100/keystone即可解決。但是實際上我們授權了%應該是所有host都應該能訪問才對。那么問題出在哪里呢?


 


 

通過查詢了mysql官網(wǎng)資料說的是配置%那么其他所有host訪問都有權限,可以上述報錯不就是告訴我,沒有權限么。

此處多說一句,此處配置%遠程其他host有權限訪問,那么在mysql的配置文件中 /etc/my.cnf,也需要做一些配置,將bind_address=0.0.0.0或者直接屏蔽掉此項,更多請自行查找資料。


 

如果想讓外面host能訪問數(shù)據(jù)庫:(yunjisuan為root密碼)


 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yunjisuan';      

flush privileges;      


     


 


 

繼續(xù)回來將如何解決上述報錯問題,回過去看看/etc/hosts文件:

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法  

明明配置了controller節(jié)點了的,嘗試將該項移個位置,奇跡出現(xiàn):

 

再上述127.0.0.1 localhost后面增加controller。至于放在127.0.0.1 localhost這一行數(shù)據(jù)代表什么意思,自己百度問去。只說一句是controller是localhost的別名alias。


 

繼續(xù)執(zhí)行命令:su -s /bin/sh -c "keystone-manage db_sync” keystone


 


查看日志:

mysql授權l(xiāng)ocalhost&%區(qū)別及一直授權錯誤的解決辦法  


 

發(fā)現(xiàn)成功。其實這里的controller是localhost的別名,因為之前對localhost授權了,所以controller也即授權了。但是第一種/etc/hosts寫法僅僅就是的DNS功能,所以報權限錯誤。

坑:此問題,困擾了好幾年,最近安裝juno版本時候有報錯,發(fā)誓一定要解決,花了兩天各種google、baidu終于解決。

上述內容就是 mysql授權l(xiāng)ocalhost&%區(qū)別以及一直授權錯誤的解決辦法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI