mysql如何重置root密码

  • 忘记root密码不用慌,本文以 mysql 5.7 为例介绍如何重置root密码。

Linux系统

  • 第1步,杀掉 mysql 进程
ps -ef | grep -v grep | grep mysql | grep 3306 | awk '{print $2}' | xargs kill -9
  • 第2步,添加参数 --skip-grant-tables 跳过权限表模式启动

注:若无 mysqld_safe 文件可尝试在 /etc/my.cnf 的 [mysqld] 添加 skip-grant-tables 再启动服务

/opt/mysql/bin/mysqld_safe --defaults-file=/data/mysql_3306/my_3306.cnf --skip-grant-tables &
  • 第3步,以任意密码登录 mysql 实例,示例改为 Admin_147
[root@localhost]# mysql -uroot -p123456 -S /tmp/mysql_3306.sock
  mysql> #.先flush一下权限再重置密码
  mysql> flush privileges;
  mysql> alter user 'root'@'localhost' identified by 'Admin_147';

  mysql> #.最后再flush一下
  mysql> flush privileges;
  mysql> exit
  • 第4步,杀掉 mysql 进程
ps -ef | grep -v grep | grep mysql | grep 3306 | awk '{print $2}' | xargs kill -9
  • 第5步,正常启动 mysql 进程
/opt/mysql/bin/mysqld_safe --defaults-file=/data/mysql_3306/my_3306.cnf &
  • 第6步,使用新密码登录 mysql 实例,示例 Admin_147
mysql -uroot -pAdmin_147 -S /tmp/mysql_3306.sock

Windows系统

  • 第1步,以管理员身份运行cmd,并停止运行的mysql服务
net stop mysql57
  • 第2步,跳过权限检查启动mysql(不要关掉cmd窗口)

注:若无 mysqld_safe 文件可尝试在 /etc/my.cnf 的 [mysqld] 添加 skip-grant-tables 再启动服务

c:\opt\mysql\bin\mysql.exe --defaults-file="d:\mysql_3406\my_3406.ini" --skip-grant-tables
  • 第3步,重开一个cmd窗口(以管理员身份运行,密码为空),重置root用户密码(5.7之前为password字段)
c:\opt\mysql\bin\mysql.exe -uroot -p
  mysql> update mysql.user set authentication_string=PASSWORD('Admin_147') where user='root' and host='localhost';
  mysql> flush privileges;
  mysql> quit;
  • 第4步,关掉第2步打开的cmd窗口并在任务管理器杀掉mysqld进程,然后启动mysql服务
tasklist | find /I "mysqld.exe"
taskkill /F /IM mysqld.exe
net start mysql57
  • 第5步,使用新密码登录
mysql.exe -uroot -pAdmin_147
Copyright © www.sqlfans.cn 2021 - 2026 All Right Reserved更新时间: 2026-08-07 20:35:03

results matching ""

    No results matching ""