mysql -u root -h 127.0.0.1 为何会首先解析成 mysql -uroot -hlocalhost 呢?
-----------------------------------------
我创建了两个超级一户
root@localhost
[email protected]
创建完成后,我 select * from user ,可以看到两条记录生成了
这两个用户都是最高权限,惟一区别是密码不一样。我想测试分别登录,因为这毕竟是两个用户呀,所以一定可以分别按不同的密码登录的,但是测试结果却完全不同于我的想象。我用
mysql -uroot -h127.0.0.1 登录时,用 [email protected] 这个用户的密码竟然无法成功,必须要输入 root@localhost 的密码才能成功。我真的晕了,这是为什么呢?
为什么会把 [email protected]首先解析成 root@localhost呢?
[email protected]毕竟是一个独立的用户呀?
-----------------------------------------
我创建了两个超级一户
root@localhost
[email protected]
创建完成后,我 select * from user ,可以看到两条记录生成了
这两个用户都是最高权限,惟一区别是密码不一样。我想测试分别登录,因为这毕竟是两个用户呀,所以一定可以分别按不同的密码登录的,但是测试结果却完全不同于我的想象。我用
mysql -uroot -h127.0.0.1 登录时,用 [email protected] 这个用户的密码竟然无法成功,必须要输入 root@localhost 的密码才能成功。我真的晕了,这是为什么呢?
为什么会把 [email protected]首先解析成 root@localhost呢?
[email protected]毕竟是一个独立的用户呀?
-h, --host=name Connect to host.是你要连的主机名,比如你有一个msyql数据库在 db.csdn.com , 那你就mysql -u root -h db.csdn.com ,这和你自己的机器一点关系都没有,你的登录账号还是 root@yourPCname
用户名是 user@客户端
可是 -h要指定的是服务器明白了。但是还有一点不解:
root@localhost
[email protected]
是两个用户,前提进我已经建了两个(虽然没有意义,但我的目的是测试)
那么我登录时,系统将我识别成哪个用户呢?因为这两个都表示的是本机登录的root,
但是在user表中,密码不一样,登录验证时,系统匹配哪一个呢?
根据我的测试 [email protected] 是不会匹配到的,这又是为什么呢?匹配的原则是什么呢?