开发者社区> 问答> 正文

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

inux 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. 其他按默认存储顺序。
    排序结束后,从第一条开始匹配,如果匹配符合则忽略剩下所有。

展开
收起
小旋风柴进 2016-03-11 14:22:16 2509 0
1 条回答
写回答
取消 提交回答
  • 这里把详细的步骤写出来吧

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

    2019-07-17 18:59:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载