user表中,root用户的 host字段,localhost与127.0.0.1有区别吗?
为何我新建一个root用户,将host定为 127.0.0.1,并且设了与 localhost不同的密码,都成功了,
但是登录时,127.0.0.1对应的密码总是不认呢?还是认localhost对应的密码。比如 root@localhost的密码为 aaaa
[email protected]的密码为 1234
用以下方式登录
mysql -uroot -h127.0.0.1 -p1234
进不去,用以下则可以
mysql -uroot -h127.0.0.1 -paaaa为什么单为 127.0.0.1设的密码无效呢?
注:我执行 flush privileges;
并重启动mysql了,
我到 user 表中看了,两用户密码确实不一样。
为何我新建一个root用户,将host定为 127.0.0.1,并且设了与 localhost不同的密码,都成功了,
但是登录时,127.0.0.1对应的密码总是不认呢?还是认localhost对应的密码。比如 root@localhost的密码为 aaaa
[email protected]的密码为 1234
用以下方式登录
mysql -uroot -h127.0.0.1 -p1234
进不去,用以下则可以
mysql -uroot -h127.0.0.1 -paaaa为什么单为 127.0.0.1设的密码无效呢?
注:我执行 flush privileges;
并重启动mysql了,
我到 user 表中看了,两用户密码确实不一样。
解决方案 »
- 小妹请教前辈统计行数的问题!
- 如何把mysql 转换成 access 数据库 或 sql server 数据库
- MySql数据库,查询每组数据中的最后一行数据
- 上个问题的延伸,希望朋友们继续讨论
- 如何用sql 实现链表查询?
- 请教Mysql安装好后,但是不能启动,该如何解决?
- 请问:怎么把一个数据库转到另一台机器上!
- mysql 数据源的问题!!!
- 我的SQL,为什么不理我啦
- mysql限制条件下的多列查询,求助大神!
- mysql -u root -h 127.0.0.1 为何会首先解析成 mysql -uroot -hlocalhost 呢?
- 在mysql下插入longblob数据,显示结果为null
你把localhost那条记录删除,再重启mysql,就得用127.0.0.1那个密码来登录了。
但是我不明白,用
mysql -uroot -h127.0.0.1
是可以登录的,而且查看host确实是 127.0.0.1
-h就是对应着 user 表的 host 字段吧!!!
不是。
你直接 mysql -uroot 试试,或者 mysql -uroot -h localhost
来验证一下你的想法。
host表中,host字段中已经有127.0.0.1这个记录呀?
为何会优先解析成
mysql -uroot -h localhost 呢?
-h, --host=name Connect to host.是你要连的主机名,比如你有一个msyql数据库在 db.csdn.com , 那你就mysql -u root -h db.csdn.com ,这和你自己的机器一点关系都没有,你的登录账号还是 root@yourPCname
如果你本机地址为 11.123.234.12 ,然后你用命令 mysql -uroot -h db.cctv.com 你连是是哪个数据库?你的账号是什么?
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
这个确实有点古怪。不过,我估计mysql的实现,是试图解析127.0.0.1,得到统一的localhost主机名,然后按照@localhost来处理用户名。 咱们就当这是特例吧。