在 MySQL 中修改 root 密码的方法有多种,根据是否记得当前密码以及 MySQL 版本略有不同,以下是常用的方法:
如果记得当前 root 密码,可以直接登录 MySQL 后修改:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
FLUSH PRIVILEGES;
如果忘记了 root 密码,可以通过以下步骤重置:
-
停止 MySQL 服务
sudo systemctl stop mysqld
-
以跳过权限验证的方式启动 MySQL
sudo mysqld_safe --skip-grant-tables &
-
无密码登录 MySQL
-
修改密码
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
UPDATE user SET password = PASSWORD('新密码') WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
EXIT;
-
重启 MySQL 服务
sudo systemctl stop mysqld
sudo systemctl start mysqld
-
停止 MySQL 服务(可在服务管理器中操作或使用命令)
-
打开命令提示符,切换到 MySQL 的 bin 目录
cd C:\Program Files\MySQL\MySQL Server X.X\bin
-
跳过权限验证启动
mysqld --skip-grant-tables
-
另开一个命令提示符窗口,无密码登录
-
后续步骤同 Linux 方法中的第 4 步(修改密码、刷新权限)
-
关闭所有 MySQL 进程,正常启动服务
-
密码应包含大小写字母、数字和特殊字符,提高安全性
-
MySQL 8.0 以上版本默认使用 caching_sha2_password 认证插件,某些客户端可能不支持,可指定旧插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
-
若 root 账户允许远程连接(host 为 %),修改时需指定对应的 host
修改完成后,使用新密码登录验证是否生效:
然后输入新密码测试登录。