mysql忘记密码如何重置_mysql忘记密码快速重置完整教程

6次阅读

答案:可通过跳过权限验证重置 MySQL 密码。先停止 MySQL 服务,以 skip-grant-tables 模式启动,免密登录后根据版本使用 ALTER USER 或 UPDATE 语句修改 root 密码,刷新权限并重启服务即可。

mysql 忘记密码如何重置_mysql 忘记密码快速重置完整教程

忘记 MySQL 密码是常见问题,尤其是本地开发环境。可以通过跳过权限验证的方式重置 root 密码,整个过程安全且有效。以下是适用于 Windows、Linux 和 macOS 的完整操作步骤。

1. 停止 MySQL 服务

在重置密码前,先停止正在运行的 MySQL 服务。

Linux(Ubuntu/Debian):

sudo systemctl stop mysql

Linux(CentOS/RHEL):

sudo systemctl stop mysqld

macOS(使用 Homebrew 安装):

brew services stop mysql

Windows(管理员命令提示符):

net stop mysql

2. 跳过权限表启动 MySQL

以跳过授权表的方式启动 MySQL,这样无需密码即可登录。

Linux/macOS:

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

Windows:

找到 MySQL 安装目录下的 bin 文件夹,执行:

mysqld –skip-grant-tables –skip-networking

说明: –skip-grant-tables 让 MySQL 不加载权限表,允许免密登录;–skip-networking 防止其他用户连接,提升安全性。

3. 免密登录并修改密码

打开新终端或命令行窗口,使用 root 账户无密码登录。

mysql -u root

进入 MySQL 后,根据 MySQL 版本选择以下方式之一修改密码:

MySQL 5.7 及以上版本:

UPDATE mysql.user SET authentication_string = PASSWORD(‘ 新密码 ’) WHERE User = ‘root’;

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 新密码 ’;

MySQL 8.0+ 推荐方式:

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 你的新密码 ’;

刷新权限,使更改生效:

FLUSH PRIVILEGES;

退出 MySQL:

exit;

4. 正常重启 MySQL 服务

关闭当前跳过权限的 MySQL 进程,然后正常启动服务。

先杀掉 mysqld 进程:

ps aux | grep mysqld # 找到进程 ID

kill -9 进程 ID

然后启动 MySQL:

sudo systemctl start mysql # Linux Debian/Ubuntu

sudo systemctl start mysqld # Linux CentOS/RHEL

brew services start mysql # macOS

net start mysql # Windows

现在可以用新密码登录:

mysql -u root -p

输入你设置的新密码即可成功进入。

基本上就这些。操作时注意版本差异,尤其是 MySQL 8.0 之后的认证机制变化。只要按步骤来,重置密码并不复杂,但容易忽略刷新权限或未正确关闭临时进程。确保每一步执行到位,避免卡在登录环节。

text=ZqhQzanResources