linux mysql8忘记密码的解决方案

 更新时间:2026年04月17日 09:37:02   作者:搬砖的梦先生  
本文介绍了两种MySQL重置密码的方法:一是关闭登录验证重置密码,二是开启登录验证后重置密码,前者需要修改my.cnf配置文件并添加skip-grant-tables,后者则需删除此配置并直接输入新密码

1、关闭mysql登录验证

停止mysql

$ systemctl stop mysqld.service

修改/etc/my.cnf,跳过权限验证

在my.cnf 下面添加

skip-grant-tables

启动mysql

$ systemctl start mysqld.service

2、重置mysql密码

重置root密码为空

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

查看root密码是否为空

select user, authentication_string from mysql.user;

保存修改

flush privileges;

示例如下:

$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set authentication_string='' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user, authentication_string from mysql.user;
+------------------+------------------------------------------------------------------------+
| user             | authentication_string                                                  |
+------------------+------------------------------------------------------------------------+
| root             |                                                                        |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
+------------------+------------------------------------------------------------------------+
6 rows in set (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

3、开启mysql登录验证

停止mysql

$ systemctl stop mysqld.service

修改/etc/my.cnf,把my.cnf 下面添加的skip-grant-tables删除

启动mysql

$ systemctl start mysqld.service

4、修改mysql密码

使用下面命令登录,在输入密码的那一步直接回车

$ mysql -uroot -p

修改root密码

‘root’@‘%’: root可以允许任务机器连接

alter user 'root'@'%' identified by '你的密码';

查看root密码

select user, authentication_string from mysql.user;

保存修改

flush privileges;

示例如下:

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> alter user 'root'@'%' identified by 'mysql.root_2023';
Query OK, 0 rows affected (0.00 sec)

mysql> select user, authentication_string from mysql.user;
+------------------+------------------------------------------------------------------------+
| user             | authentication_string                                                  |
+------------------+------------------------------------------------------------------------+
| root             | *A780CA81542274F7A6F52BBC40B7B2E2F9BE8A0F                              |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
+------------------+------------------------------------------------------------------------+
6 rows in set (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux之权限管理解读

    Linux之权限管理解读

    本文介绍了Linux下的超级用户和普通用户以及它们的命令提示符,接着,详细解释了权限的概念、访问者的分类、文件类型与访问权限以及文件权限值的表示方法,最后,文章讨论了文件权限的设置方法,包括chmod、chown和chgrp命令,并列举了一些常见权限问题
    2025-03-03
  • 虚拟机安装centos7的坑之找不到网卡问题及解决

    虚拟机安装centos7的坑之找不到网卡问题及解决

    这篇文章主要介绍了虚拟机安装centos7的坑之找不到网卡问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • linux下制作ISO文件

    linux下制作ISO文件

    本文给大家分享的是在linux系统中制作ISO文件的2种方法,非常简单实用,有需要的小伙伴可以参考下
    2018-04-04
  • Ubuntu操作系统更换国内源过程

    Ubuntu操作系统更换国内源过程

    文章介绍了如何将Ubuntu系统的软件源更换为国内的阿里源,包括备份原源列表、添加阿里源地址和公钥、以及更新源和软件版本的详细步骤
    2026-03-03
  • 关于Apache默认编码错误 导致网站乱码的解决方案

    关于Apache默认编码错误 导致网站乱码的解决方案

    Apache默认编码UTF-8在解析A网站的时候没有任何问题,当运行B网站时出现的"蝌蚪文"乱码问题
    2011-12-12
  • linux安装redis和mysql的实例讲解

    linux安装redis和mysql的实例讲解

    下面小编就为大家分享一篇linux安装redis和mysql的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Ubuntu下Telnet服务器的配置方法

    Ubuntu下Telnet服务器的配置方法

    这篇文章主要介绍了Ubuntu下Telnet服务器的配置方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • ubuntu18.04制作raid0教程

    ubuntu18.04制作raid0教程

    本文介绍RAID0创建步骤:检查物理盘状态,使用命令指定控制器0、磁盘及类型,验证虚拟磁盘,分区、格式化并挂载,RAID0提升读写速度,但无冗余,数据丢失风险高
    2025-08-08
  • Centos7服务器下启动jar包项目的最佳方法

    Centos7服务器下启动jar包项目的最佳方法

    这篇文章主要给大家分享介绍了关于Centos7服务器下启动jar包项目的最佳方法,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Linux中curl命令和wget命令的使用介绍与比较

    Linux中curl命令和wget命令的使用介绍与比较

    这篇文章主要给大家介绍了Linux中curl命令和wget命令使用以及这两者之间的区别比较的相关资料,curl和wget命令都是Linux下的工具,可以用来下载文件。文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04

最新评论