Administrator
发布于 2026-01-17 / 21 阅读
0

mysql忘记root密码如何重置

要求:

1、必须可以登录到mysql所在的服务器上

2、数据库需要重启

1、远程登录上mysql所在服务器

2、检查mysql服务是否正常运行

3、停止mysql运行

[root@mysql ~]# systemctl stop mysqld

4、以安全模式启动MySQL(禁止网络连接)

mysqld --skip-grant-tables --skip-networking --user=mysql

参数介绍:

--skip-grant-tables

核心作用:跳过MySQL的权限系统验证

  • 启动时不加载权限表(mysql.user等)

  • 任何用户都可以不需要密码连接MySQL

  • 主要用于忘记root密码时进行密码重置

--skip-networking

安全保护措施:禁止网络连接

  • 只允许本地连接(通过socket文件)

  • 防止外部用户利用--skip-grant-tables状态进行未授权访问

  • 增强安全性,避免在密码重置期间被攻击

--user=mysql

指定运行用户:以mysql系统用户身份运行

  • MySQL服务通常创建专门的系统账户(如mysql)

  • 确保MySQL进程以正确的权限运行

  • 避免使用root系统账户运行MySQL服务(安全最佳实践)

备注:如果单台机器运行了多个数据库还需要其它参数:

--port 端口号

--datadir 数据路径

--socket 该实例socket文件(正常关闭可能没有这个文件)

--defaults-file mysql配置文件路径

5、连接mysql

6、重置密码

flush privileges;
alter user 'root'@'localhost' identified by 'qazwsxQAZWSX.';
flush privileges;

7、关闭mysql服务

# 查询mysql进程ID号
ps aux |grep mysql
# 杀掉mysql的id号
kill ID号

8、正常启动mysql服务

# 启动mysql服务
systemctl start mysqld
systemctl status mysqld

9、再次尝试正常登录数据库