暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【赵渝强老师】解决MySQL丢失root用户密码

原创 赵渝强老师 2025-11-01
111

1.png
​在早期的MySQL数据库中,用户的密码是保存在“mysql.user”表中的“password”字段中。但是从MySQL 5.7版本开始“password”字段改成“authentication_string”字段。例如,下面的语句将查询MySQL中用户的密码。

mysql> select host,user,authentication_string from user; # 输出的信息如下: +--------------+------------------+------------------------------------------+ | host | user | authentication_string | +--------------+------------------+------------------------------------------+ | % | root | *DA9A17B9F8055D5C1C913421889357F6A35565F7| | % | user001 | *DA9A17B9F8055D5C1C913421889357F6A35565F7| | 192.168.79.% | myadmin | *DA9A17B9F8055D5C1C913421889357F6A35565F7| | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | root | *DA9A17B9F8055D5C1C913421889357F6A35565F7| +--------------+------------------+------------------------------------------+

对于root用户需码丢失这种问题,可以通过特殊方法登录,MySQL服务器,然后在root用户下重新设置登录密码。

aaa11.png
点击这里查看视频讲解:【赵渝强老师】解决MySQL丢失root用户密码

(1)停止MySQL数据库服务。

systemctl stop mysqld

(2)编辑配置文件“/etc/my.cnf”,在mysqld块的末尾添加一行:

skip-grant-tables

(3)重启MySQL服务。

systemctl start mysqld

(4)直接登录MySQL。

mysql

(5)查询“mysql.user”表的信息。

mysql> use mysql; mysql> select host, user, authentication_string from user; # 输出的信息如下: +--------------+------------------+------------------------------------------+ | host | user | authentication_string | +--------------+------------------+------------------------------------------+ | % | root | *DA9A17B9F8055D5C1C913421889357F6A35565F7| | % | user001 | *DA9A17B9F8055D5C1C913421889357F6A35565F7| | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALID...... | | localhost | root | *DA9A17B9F8055D5C1C913421889357F6A35565F7| +--------------+------------------+------------------------------------------+

(6)置空root用户的密码。

mysql> update user set authentication_string='' where user='root';

(7)刷新一下权限。

mysql> flush privileges;

(8)重新设置root用户的密码。

mysql> alter user 'root'@'%' identified by 'Weblogic_123'; mysql> alter user 'root'@'localhost' identified by 'Weblogic_123';

(9)退出MySQL命令行,使用新的密码登录MySQL。

最后修改时间:2025-12-14 14:24:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论