MySQL8.0忘记密码后重置密码(亲测有效)

本文介绍了MySQL不同版本无密码启动服务及修改密码的方法。在MySQL 8系统下,可通过特定命令无密码启动服务,启动后以空密码登入系统并执行SQL命令修改root用户密码。还提及了MySQL 8之前版本在Windows下无密码启动及查看原密码的操作步骤。

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

实测,在mysql8系统下,用mysqld --console --skip-grant-tables --shared-memory可以无密码启动服务

服务启动后,以空密码登入系统

mysql.exe -u root

然后执行sql命令将root用户密码设置为空

UPDATE mysql.user SET authentication_string='' WHERE user='root' and host='localhost';

 

 

mysql8之前的版本可以

一.windows下

  1.以系统管理员身份运行cmd.

  2.查看mysql是否已经启动

  3.切换到MySQL安装路径下:D:\xxx\MySQL-5.6.36\bin;如果已经配了环境变量,可以不用切换了。

  4.在命令行输入:mysqld -nt --skip-grant-tables

  5.以管理员身份重新启动一个cmd命令窗口,输入:mysql -uroot -p,Enter进入数据库。

  6.如果不想改密码,只是想看原来的密码的话,可以在命令行执行这个语句

select host,user,password from mysql.user;//即可查看到用户和密码

update user set password=password("new_pass") where user="root";// 'new_pass' 这里改为你要设置的密码
flush privileges;
exit

 

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

余额充值