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

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

忘记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之后的认证机制变化。只要按步骤来,重置密码并不复杂,但容易忽略刷新权限或未正确关闭临时进程。确保每一步执行到位,避免卡在登录环节。

相关推荐