本地windows 修改mysql 的root密码无效,论 127.0.0.1与 localho
先说我遇到的问题:有个项目中使用了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的区别是什么? (编辑:ASP站长网) |