mysql授權localhost&%區別及一直授權錯誤解決辦法(安裝openstack有感),mysqllocalhost

來源:互聯網
上載者:User

mysql授權localhost&%區別及一直授權錯誤解決辦法(安裝openstack有感),mysqllocalhost
首先還是附上openstack文檔,以此作為例子講解為什麼賦權了%而卻一直報許可權錯誤!
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檔案:
查看keystone日誌:tailf /var/log/keystone/keystone.log
執行同步資料庫命令:

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



日誌出現了讓人頭大的許可權錯誤:


這個錯誤估計困擾過很多安裝openstack的人,至少我從openstack e版到現在juno版本,都經常會報這種無厘頭錯誤,顯然這個一看就是許可權錯誤,一般我會採用直接將keystone。conf的connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone配置為

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



通過查詢了mysql官網資料說的是配置%那麼其他所有host訪問都有許可權,可以上述報錯不就是告訴我,沒有許可權麼。此處多說一句,此處配置%遠程其他host有許可權訪問,那麼在mysql的設定檔中 /etc/my.cnf,也需要做一些配置,將bind_address=0.0.0.0或者直接屏蔽掉此項,更多請自行尋找資料。

繼續回來將如何解決上述報錯問題,回過去看看/etc/hosts檔案:
明明配置了controller節點了的,嘗試將該項移個位置,奇蹟出現:
再上述127.0.0.1 localhost後面增加controller。至於放在127.0.0.1 localhost這一行資料代表什麼意思,自己百度問去。只說一句是controller是localhost的別名alias。
繼續執行命令:su -s /bin/sh -c "keystone-manage db_sync” keystone

查看日誌:

發現成功。其實這裡的controller是localhost的別名,因為之前對localhost授權了,所以controller也即授權了。但是第一種/etc/hosts寫法僅僅就是的DNS功能,所以報許可權錯誤。
坑:此問題,困擾了好幾年,最近安裝juno版本時候有報錯,發誓一定要解決,花了兩天各種google、baidu終於解決。(原諒我小小的完美偏執綜合征,不解決心理就不爽,就算能規避也還是不爽,不過最後還是解決了,給自己贊一個。)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.