python 全局mysql_mysql全局权限账户%无法登录如何解决

31fee5e9fc63785fdadb2844bbbdcc6b.png

mysql中有新建了一个%(允许所有主机连接)和ALL权限的账户。但是竟然连不上。用root或者其他localhost的用户却可以登录。首先检查下防火墙打开了没,可以用service iptables stop打开防火墙。如果仍然报错:

987acca2210e5ec154cc485e3974b4b8.png

报错:ERROR 1045 (28000): Access denied for user 'zzq'@'localhost' (using password: YES)

帐号密码都对了 就是连不上。细心的话我们会发现 帐号权限是%,而这里提示的是localhost。

错误原因如下:

dec64746a010668b01dff7201dcc2782.png

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

?6?1 前两个帐户名称都是monty,而且都是拥有所有权限和密码。但是两者的区别在于,第一个帐户(monty@localhost)只能通过本地登录,而第二个账户(monty@%)可以通过任意主机登录。值得注意的是,为了能够使用monty帐户在任何地方进行登录,这两个账户同时存在则是必要的。因为,如果没有本地帐户(monty@localhost),使用monty帐户登录时,mysql_install_db将优先考虑创建一个本地的匿名帐户。那么结果将是monty账户会被当作一个匿名帐户来处理。原因则在于,匿名帐户拥有一个比nonty@%账户更加具体的host字段值,从而在user表排序的时候会相对出现的更早。

也就是说 同一个账户 要同时存在%帐号或者localhost帐号时, %帐号才起作用。

我们给 zzq帐号添加一个localhost帐号。

2dbe7c12a3d232b5b18ce4db082717df.png

GRANT ALL PRIVILEGES ON *.* TO 'zzq'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

然后再登录 发现可以登录了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值