5.7版本mysql中localhost和%的关系探究

今天在使用navicate连接本地数据库时,一直报错,连接拒绝:

5.7版本mysql中localhost和%的关系探究_第1张图片

本人明明记得密码是‘mysql1234’,怎么就登不上了呢。。。。。

无奈之下,切入到cmd模式下,进行登录:


5.7版本mysql中localhost和%的关系探究_第2张图片

输入密码‘mysql1234’-----竟然成功登录了。

赶紧去user表下查看一下root用户的host和password:

5.7版本mysql中localhost和%的关系探究_第3张图片


噢no!!,root用户下host为‘%‘和‘localhost’的密码竟然不一样,难怪。。。,但是不是说%的主机包括localhost主机吗,江湖传言root用户在主机为%时,无论时本地localhost还是非本机ip都能登录啊,看来他们之间还是不能完全兼容的。

后面我又做了验证发现以下规律:当不给localhost主机添加密码时,无论是在非本机ip还是localhost都能依靠主机为%的密码通过mysql验证,完成连接;

当单独给localhost添加跟%不一样的密码时,如果你在本地登录,mysql数据库只认localhost主机的密码,不认%主机的密码,并且通过navicate登录的时候虽然你的主机名或者ip填的localhost,mysql也不会让你通过主机为localhost那个密码登录的,只能使用%的那个密码登录。

你可能感兴趣的:(mysql数据库)