MySQL8.0 忘记密码、重置密码

本文介绍了一种在忘记MySQL root密码后重新设置的方法。通过在my.cnf文件中添加skip-grant-tables跳过权限检查,重启服务后使用空密码登录。接着更新root用户的密码字段为新密码,最后重启服务移除skip-grant-tables选项。

修改my.cnf

[mysqld] 域中添加skip-grant-tables

重启mysqld服务

systemctl restart mysqld

重新使用空密码登录,直接敲回车

mysql -u root -p

切换数据库,并将密码清空

mysql >use mysql;
mysql >update user set authentication_string = '' where user = 'root';

退出

mysql >quit

删除my.cnf中的skip-grant-tables,并重启服务

systemctl restart mysqld

重新登录root账号,密码直接回车

修改root密码

mysql >ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
### 如何重置 MySQL 8.0 Root 用户密码 #### 停止并重启 MySQL 服务 为了安全地更改 `root` 密码,需先停止 MySQL 服务器,并以跳过权限表的方式启动它。这允许无验证访问。 对于 **macOS** 和 **Linux (CentOS)** 的情况: ```bash sudo /usr/local/mysql/support-files/mysql.server stop sudo mysqld_safe --skip-grant-tables & ``` 对于 **Windows**: 通过命令提示符或者 PowerShell 使用管理员身份运行以下指令来关闭 MySQL 并重新启动带有特殊参数的服务[^4]。 #### 登录到 MySQL 不需要提供现有密码 一旦 MySQL 已经按照上述方式启动,则可以直接连接至 MySQL 而无需输入任何密码。 ```sql mysql -u root ``` #### 修改 Root 用户的认证信息 进入 MySQL 后台之后,执行如下 SQL 查询语句以便能够改变默认用户的凭证数据。 针对不同操作系统环境下的具体操作略有差异: - 对于 macOS 及 Linux(CentOS),可以参照下面的方法设置新密码[^1][^3]: ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('NewPasswordHere') WHERE User='root'; FLUSH PRIVILEGES; -- 或者更推荐的做法是使用 ALTER USER 来指定新的身份验证方法和密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'NewPasswordHere'; FLUSH PRIVILEGES; ``` - Windows 下则建议采用更为简洁的形式完成相同目的: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswordHere'; FLUSH PRIVILEGES; ``` 请注意,在某些较旧版本中可能不支持直接修改 `authentication_string` 字段,而是应该利用 `SET PASSWORD FOR...` 语法替代之。 #### 正常模式下重启 MySQL 服务 最后一步就是正常终止当前正在运行中的实例并且恢复常规配置文件加载路径下的守护进程工作状态。 ```bash # For Unix-like systems like MacOS and CentOS sudo pkill mysqld sudo /usr/local/mysql/support-files/mysql.server start # On Windows, restart the service via Services management console or command line. net stop MySQL net start MySQL ``` 成功完成后就可以用刚刚设定的新密码登录了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值