如果忘记了 MySQL 的 root 密码,可以根据不同的操作系统和 MySQL 版本,通过以下常见方法来解决:
一、Windows 系统
方法一:使用 MySQL 命令行安全模式重置密码
- 停止 MySQL 服务
- 按下
Win + R
组合键,输入services.msc
并回车,打开 “服务” 窗口。 - 在服务列表中找到 MySQL 服务,右键点击并选择 “停止”。
- 按下
- 以跳过权限验证模式启动 MySQL
- 打开命令提示符(以管理员身份运行)。
- 进入 MySQL 的安装目录下的
bin
文件夹,例如:cd C:\Program Files\MySQL\MySQL Server 8.0\bin
。 - 执行以下命令以跳过权限验证模式启动 MySQL:
收起
plaintext
mysqld --skip-grant-tables
- 打开新的命令提示符窗口并登录 MySQL
- 同样以管理员身份打开一个新的命令提示符窗口。
- 进入 MySQL 的
bin
目录。 - 执行以下命令登录 MySQL:
收起
plaintext
mysql -u root
- 更新 root 用户密码
- 如果你使用的是 MySQL 5.7 及以下版本,执行以下命令更新密码:
收起
sql
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
- 如果你使用的是 MySQL 8.0 及以上版本,执行以下命令更新密码:
收起
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
- 停止并正常启动 MySQL 服务
- 关闭之前以跳过权限验证模式启动 MySQL 的命令提示符窗口,这会停止 MySQL 服务。
- 在 “服务” 窗口中,右键点击 MySQL 服务,选择 “启动”。
方法二:使用 MySQL 安装向导重置密码
如果你使用的是 MySQL Installer 安装的 MySQL,可以通过以下步骤重置密码:
- 打开 MySQL Installer。
- 选择 “Reconfigure”(重新配置)选项,选择要重置密码的 MySQL Server 实例。
- 在配置向导中,找到 “Accounts and Roles”(账户和角色)步骤,选择 root 用户并设置新密码。
- 完成配置向导,保存新密码。
二、Linux 系统
方法一:使用安全模式重置密码
- 停止 MySQL 服务
- 对于基于 Debian 或 Ubuntu 的系统,执行以下命令:
收起
bash
sudo systemctl stop mysql
- 对于基于 Red Hat 或 CentOS 的系统,执行以下命令:
收起
bash
sudo systemctl stop mysqld
- 以跳过权限验证模式启动 MySQL
- 执行以下命令以跳过权限验证模式启动 MySQL:
收起
bash
sudo mysqld_safe --skip-grant-tables &
- 登录 MySQL 并更新密码
- 打开一个新的终端窗口,执行以下命令登录 MySQL:
收起
bash
mysql -u root
- 根据 MySQL 版本执行相应的密码更新命令,与 Windows 系统中的命令相同。
- 停止并正常启动 MySQL 服务
- 找到以跳过权限验证模式启动的 MySQL 进程的 PID,执行以下命令停止该进程:
收起
bash
sudo kill -9 PID
- 然后正常启动 MySQL 服务:
收起
bash
sudo systemctl start mysql # Debian 或 Ubuntu
sudo systemctl start mysqld # Red Hat 或 CentOS
方法二:使用 MySQL 配置文件重置密码
- 编辑 MySQL 配置文件
- 打开 MySQL 的配置文件,通常位于
/etc/mysql/mysql.conf.d/mysqld.cnf
(Debian 或 Ubuntu)或/etc/my.cnf
(Red Hat 或 CentOS)。 - 在
[mysqld]
部分添加skip-grant-tables
选项。 - 保存并关闭文件。
- 打开 MySQL 的配置文件,通常位于
- 重启 MySQL 服务
- 执行相应的命令重启 MySQL 服务。
- 登录 MySQL 并更新密码
- 登录 MySQL 并执行密码更新命令。
- 恢复配置文件并重启服务
- 从配置文件中删除
skip-grant-tables
选项。 - 再次重启 MySQL 服务。
- 从配置文件中删除