linux mysql误修改user表导致无法root用户登录

steemit 发布于 2013/08/19 23:25
阅读 2K+
收藏 0
linux mysql误修改user表导致无法root用户登录,急救!!!


mysql> select user,host,password from user;
+--------------+-----------------------+-------------------------------------------+
| user         | host                  | password                                  |
+--------------+-----------------------+-------------------------------------------+
| root         | localhost             | *598FE94BA75703c76064DE2F9203CBA7DD62B920 |
| root         | zhangyi |                                             |
| root         | 127.0.0.1             |                                           |
|              | localhost             |                                           |
|              | zhangyi |                                                         |

+--------------+-----------------------+-------------------------------------------+

将其中host=127.0.0.1的密码通过MySQL-WorkBench也改成了和host等于localhost记录一样的值,导致mysql无法root登录,求教!

不懂mysql为何一个是127.0.0.1和localhost一个有密码一个没密码,改了就登录不了。

引用:

因为mysql在验证用户时先对user表进行排序:
1. specified的host排在pattern的host前面。
2. 相同host的条目,specified的user排在anonymous的前面。
3. 其他按默认存储顺序。
排序结束后,从第一条开始匹配,如果匹配符合则忽略剩下所有。

加载中
0
我已经报警了
我已经报警了

这里把详细的步骤写出来吧

  1. 停止mysql服务
  2. 在my.ini/my.cnf的mysqld部分加入"sjip-grant-tables"
  3. 开始mysql服务
  4. user mysql
  5. update user set Passwrod = password('yourpasswrod') where User = 'root'
  6. 退出mysql,删除配置文件的skip-grant-tables
  7. 重启mysql

0
iSea
iSea
重修修改所有密码吧,两个密码一样是没问题的,重新登陆后设定一下新密码
0
星爷
星爷
mysql可以设置跳过密码验证,百度下一堆,然后修改root
0
苏生不惑
苏生不惑
楼主解释清楚点嘛,什么叫  specified的host和pattern的host
0
steemit
steemit
问题解决了,二楼的方法可行!!!
0
周捷_zj
周捷_zj
"skip-grant-tables"的skip 达成sjip了,一直不成功
0
cherrypp
cherrypp
一楼和二楼都可行
返回顶部
顶部