温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql授权localhost&%区别及一直授权错误的解决办法

发布时间:2021-12-01 17:37:31 来源:亿速云 阅读:703 作者:柒染 栏目:云计算

本篇文章为大家展示了 mysql授权localhost&%区别以及一直授权错误的解决办法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

首先还是附上openstack文档,以此作为例子讲解为什么赋权了%而却一直报权限错误!

mysql授权localhost&%区别及一直授权错误的解决办法


 


 

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授权localhost&%区别及一直授权错误的解决办法  

查看keystone日志:  

tailf /var/log/keystone/keystone.log  


 

执行同步数据库命令:

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


 


 

日志出现了让人头大的权限错误:

mysql授权localhost&%区别及一直授权错误的解决办法  


这个错误估计困扰过很多安装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或者直接屏蔽掉此项,更多请自行查找资料。


 

如果想让外面host能访问数据库:(yunjisuan为root密码)


 

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

flush privileges;      


     


 


 

继续回来将如何解决上述报错问题,回过去看看/etc/hosts文件:

mysql授权localhost&%区别及一直授权错误的解决办法  

明明配置了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


 


查看日志:

mysql授权localhost&%区别及一直授权错误的解决办法  


 

发现成功。其实这里的controller是localhost的别名,因为之前对localhost授权了,所以controller也即授权了。但是第一种/etc/hosts写法仅仅就是的DNS功能,所以报权限错误。

坑:此问题,困扰了好几年,最近安装juno版本时候有报错,发誓一定要解决,花了两天各种google、baidu终于解决。

上述内容就是 mysql授权localhost&%区别以及一直授权错误的解决办法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI