加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

本地windows 修改mysql 的root密码无效,论 127.0.0.1与 localho

发布时间:2020-12-14 05:59:45 所属栏目:Windows 来源:网络整理
导读:先说我遇到的问题: 有个项目中使用了127.0.0.1来连接本地的数据库,现在要设置本地数据库的密码。于是通过cmd 窗口使用命令: #mysql -uroot -p // 已经知道原来是不设密码的,这里可以登录mysqlupdate mysql.user set password=password(‘mypassword’) w

先说我遇到的问题:

  有个项目中使用了127.0.0.1来连接本地的数据库,现在要设置本地数据库的密码。于是通过cmd 窗口使用命令:

#mysql -uroot -p   // 已经知道原来是不设密码的,这里可以登录
mysql>update mysql.user set password=password(‘mypassword’) where user=’root’;
mysql>flush privileges;
mysql>quit;

  密码修改好了,但项目中使用上面的密码后还是连接不上。 通过cmd 窗口使用命令 ,使用修改后的密码倒是可以。

后来弄明白了。

解决:  

MySQL有三种登录命令:
(1)#mysql -uroot -p  
(2)#mysql -uroot -p  -h localhost    
(3)#mysql -uroot -p  -h 127.0.0.1

  见MySQL的mysql.user 表:

  都是root?用户,登录途径不同,有各自不同的password 。

  既让明白了原理,这就来修改:

先通过已知方式登录:
#mysql -uroot -p
修改密码:
grant all on *.* to [email?protected]% identified by mypassword with grant option;
grant all on *.* to [email?protected]127.0.0.1 identified by mypassword with grant option;
grant all on *.* to [email?protected]localhost identified by mypassword with grant option;
flush privileges;

?

补充一:

  这三种路径不同,深究一下:

  证明了(1)#mysql -uroot -p? 与?(2)#mysql -uroot -p -h localhost? ?是相同的,而与(3)是不同的。

?补充二:

localhost与127.0.0.1的区别是什么?
相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。
看来这个问题还有人不清楚,其实这两者是有区别的。
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读