MySQL 忘记密码怎么办

本文介绍在Windows和Linux环境下,当忘记MySQL密码时如何通过跳过权限表的方式重置root密码。涉及停止服务、修改配置、更新密码等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在windows下:
打开命令行窗口,停止mysql服务:net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt --skip-grant-tables
另外打开一个命令行窗口,执行mysql
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了

在linux下:
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。

 

>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit

 

 
### 如何重置 MySQL root 用户密码 #### 方法一:通过 `UPDATE` 命令重置密码忘记 MySQL 的 root 密码时,可以通过以下 SQL 语句来更新 root 账户的认证字符串: ```sql mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; quit ``` 上述命令中的 `'new_password'` 需要被替换成新的期望密码[^1]。 #### 方法二:使用 `ALTER USER` 修改身份验证方式 另一种更推荐的方法是利用 `ALTER USER` 来更改 root 用户的身份验证插件以及其对应的密码。这可以确保兼容性和安全性: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword'; FLUSH PRIVILEGES; ``` 完成操作后同样需要刷新权限表以使变更生效,并且记得用 `EXIT;` 或者 `quit` 退出 MySQL 客户端[^2]。 #### 关键步骤说明 为了保证这些SQL指令能够成功执行,在此之前应当先让 MySQL 服务处于一种特殊的安全模式——即跳过授权表(`--skip-grant-tables`)启动;而在所有的修改完成后,则需正常重启 MySQL 服务以便应用最新的安全设置变化[^3]。 #### 提醒事项 - 执行以上任一步骤前,请务必确认已经停止了现有的 MySQL 实例。 - 对于生产环境中使用的数据库实例,建议提前做好数据备份工作以防意外情况发生。 - 更改后的密码应该妥善保管,并考虑同步至其他依赖该数据库的应用程序配置文件里去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值