开发者社区> 问答> 正文

linux mysql误修改user表导致无法root用户登录,求大神帮助。

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

展开
收起
落地花开啦 2016-02-01 11:43:17 3622 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
    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
    2019-07-17 18:37:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载