Mysql账户问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql账户问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3446字,纯文字阅读大概需要5分钟。
内容图文
![Mysql账户问题](/upload/InfoBanner/zyjiaocheng/471/1bcd735e9fb14ca7abe4774e1c300522.jpg)
3台主机web01,web02,web03,做主从,其中有一台怎么都连不上master。
在主机web02的mysql数据库中建一账户(rep),web01登录失败,web03可以正常登录。
建立账户grant replication slave on *.* to rep@‘192.168.190.%‘ identified by ‘rep111‘;
a.在web03中登录成功
b.在web01中登录失败
但是,在web01中不用户密码可以登录成功。
查阅文档得知可以使用USER()和CURRENT_USER()两个函数查看所使用的用户
USER()函数返回你在客户端登陆时指定的用户名和主机名。CURRENT_USER()函数返回的是MySQL使用授权表中的哪个用户来认证你的登录请求。
那就分别在web01和web03登录后查看。
web01
web03
通过以上两张图可以知道。web01是通过空账户登录的,这也就解释了为什么不用密码可以登录,但为什么用了密码反而不能登录呢??
二、这可能就要了解MySQL是如何进行用户身份认证的。
a、当用户从客户端请求登陆时,MySQL将授权表中的条目与客户端所提供的条目进行比较,包括用户的用户名,密码和主机。授权表中的Host字段是可以使用通配符作为模式进行匹配的,如test.example.com, %.example.com, %.com和%都可以匹配test.example.com这个主机。授权表中的User字段不允许使用模式匹配,但是可以有一个空字符的用户名代表匿名用户,并且空字符串可以匹配所有的用户名,就像通配符一样。 当user表中的Host和User有多个值可以匹配客户端提供的主机和用户名时,MySQL将user表读入内存,并且按照一定规则排序,按照排序规则读取到的第一个匹配客户端用户名和主机名的条目对客户端进行身份验证。
b、排序规则:对于Host字段,按照匹配的精确程度进行排序,越精确的排序越前,例如当匹配test.example.com这个主机时, %.example.com比%.com更精确,而test.example.com比%.example.com更精确。对于User字段,非空的字符串用户名比空字符串匹配的用户名排序更靠前。 User和Host字段都有多个匹配值,MySQL使用主机名排序最前的条目,在主机名字段相同时再选取用户名排序更前的条目。因此,如果User和Host字段都有多个匹配值,主机名最精确匹配的条目被用户对用户进行认证。
那我们来看一下web02上面的主机,账户,信息。
通过MySQL用户身份认证的规则,我们得出,web01登录采用的是第1条规则,而不知道我们自认为的第2条。这也同样解释了为什么不用密码就可以登录成功的道理了。
三、解决的方法:删除匿名用户
1、使用root权限登录
2、mysql> select host,user,password from mysql.user;
3、mysql> delete from mysql.user where user=‘‘;
4、mysql> flush privileges;
有人可以要问为什么root好像没有这种情况,那是因为
因为mysql_install_db脚本会在授权表中生成‘root‘@‘localhost‘这个账户。同样的,使用root登录MySQL 时,‘root‘@‘localhost‘和‘‘@‘localhost‘都能匹配登录的账户,但是根据排序规则,主机名相同,而用户名非空字符串优先,因此‘root‘@‘localhost‘这个条目的排序更靠前。使用root本地登录是不会被匿名用户遮盖。也许还有人要问你在web02中为什么会有web01的匿名账户呢,后来仔细想了想,原来web02是由web01虚机机复制过来的。
本文出自 “59090939” 博客,请务必保留此出处http://59090939.blog.51cto.com/6338052/1858567
Mysql账户问题
标签:mysql账户问题
本文系统来源:http://59090939.blog.51cto.com/6338052/1858567
内容总结
以上是互联网集市为您收集整理的Mysql账户问题全部内容,希望文章能够帮你解决Mysql账户问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。