mysql密码忘了怎么办_mysql忘记密码重置的完整流程

来源:这里教程网 时间:2026-02-28 20:29:49 作者:

MySQL密码忘了不用慌,可以通过跳过权限验证的方式重置密码。整个过程不会丢失数据,只要按步骤操作即可恢复访问。以下是适用于Windows和Linux系统的完整重置流程。

1. 停止MySQL服务

要修改密码,先得停止正在运行的MySQL服务。

Linux系统:

打开终端,执行以下命令:

sudo systemctl stop mysql

或(根据发行版不同):

sudo service mysql stop Windows系统:

按下 Win + R,输入 services.msc,找到 MySQL 服务,右键选择“停止”。

或者在命令提示符(以管理员身份运行)中执行:

net stop mysql

如果服务名是 mysql80 或其他,请使用对应名称。

2. 跳过权限验证启动MySQL

这一步是关键,让MySQL不加载权限表,从而无需密码登录。

Linux系统:

进入MySQL的bin目录(通常为 /usr/bin/),然后运行:

sudo mysqld --skip-grant-tables --skip-networking &

--skip-grant-tables 表示跳过权限检查,--skip-networking 防止其他用户趁机登录,提升安全性。

Windows系统:

以管理员身份打开命令提示符,进入MySQL的bin目录(如 C:\Program Files\MySQL\MySQL Server 8.0\bin),执行:

mysqld --skip-grant-tables --console

这个命令会占用当前窗口,不要关闭它。

3. 无密码登录并修改密码

新开一个终端或命令行窗口,连接MySQL。

mysql -u root

此时应该能直接进入MySQL命令行界面。

接下来刷新权限表(必须先执行):

FLUSH PRIVILEGES;

然后根据你的MySQL版本设置新密码:

MySQL 5.7 及以下: UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; MySQL 8.0+(推荐方式): ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

如果你不确定用户主机,可以先查一下:

SELECT User, Host FROM mysql.user;

如果有 'root'@'%' 也需要更新:

ALTER USER 'root'@'%' IDENTIFIED BY '新密码';

改完后执行:

FLUSH PRIVILEGES; exit;

4. 正常重启MySQL服务

关闭之前用 --skip-grant-tables 启动的进程,然后正常启动MySQL。

Linux系统: sudo killall mysqld sudo systemctl start mysql Windows系统: 在任务管理器中结束 mysqld 进程 net start mysql

现在可以用新密码登录测试:

mysql -u root -p

基本上就这些。整个过程安全可靠,关键是注意版本差异,尤其是MySQL 8.0之后的认证方式变化。操作时别忘了刷新权限,不然修改可能不生效。

相关推荐