linux下mysql 8.0忘记密码后重置密码

本文介绍了 MySQL 8.0 版本重置 root 密码的详细步骤。先在配置文件添加免密码登陆设置,重启服务使配置生效,将旧密码置空,再去除免密码登陆设置并重启服务,最后修改密码。同时提醒,因版本更新,旧方法重置密码在 MySQL 8.0 行不通。

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

转自:https://www.cnblogs.com/yaowen/p/9486997.html

1://免密码登陆

找到mysql配置文件:my.cnf,

在【mysqld】模块添加:skip-grant-tables   保存退出;

 

2://使配置生效

重启mysql服务:  service mysqld restart;

 

3://将旧密码置空

mysql -u root -p    //提示输入密码时直接敲回车。

//选择数据库

use mysql

//将密码置空

update user set authentication_string = '' where user = 'root';

//退出

quit

 

4://去除免密码登陆

删掉步骤1的语句  skip-grant-tables

重启服务  service mysqld restart

 

5://修改密码

mysql -u root -p  //提示输入密码时直接敲回车,刚刚已经将密码置空了

ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';//'abc123@xxx'  密码形式过于简单则会报错(密码要包括大写字母、小写字母、数字、特殊符号)

 

ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉

 

### 如何重置 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、付费专栏及课程。

余额充值