8.0 MySQL 忘记密码改法

本文详细介绍了在MySQL8.0版本中,如果忘记密码如何通过管理员权限的CMD进行重置的完整步骤,包括停止和启动MySQL服务,跳过授权表,以及使用ALTER USER命令设置新密码。

8.0 MySQL忘记密码改法

由于MySQL版本的更新,之前的一些修改密码的语句会失效,以下为收集各位大佬意见后的一个汇总。

  1. 鼠标右键以管理员身份打开cmd,在其中将目录转到mysql安装目录下的bin。 以下所有操作均在以管理员身份打开下的cmd中的mysql的bin目录下
    在这里插入图片描述
    如果bin不在c盘,且cd :其他盘无法打开,则先cd:其他盘,之后再 其他盘: 即可转到该目录下

  2. 命令:net stop mysql

    启动mysql,运行成功如下:在这里插入图片描述

  3. 命令mysqld --console --skip-grant-tables --shared-memory

    运行成功如下:在这里插入图片描述

  4. 注意:如果上一步成功,则需要重新以管理员身份打开一个cmd,并转到bin目录下

    命令: mysql

    运行成功如下:
    在这里插入图片描述

  5. 命令:use mysql

    运行成功如下:
    在这里插入图片描述

  6. 命令: ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

    注意分号别忘了复制

  7. 命令:flush privileges;

    注意分号别忘了复制
    第7、8步最终成功后如下:
    在这里插入图片描述
    ==注意:执行第7步后,有可能出现如图问题,可以先执行第8步,再执行第7步,最后再重复一次第8步。

  8. 命令:exit

    运行成功如下:
    在这里插入图片描述

  9. 命令:mysqladmin -u root -p shutdown

    运行成功会提示输入密码,最终如下:
    在这里插入图片描述

  10. 命令:net start mysql

  11. 命令:mysql -uroot -p

    第10、11步运行成功如下:
    在这里插入图片描述

### 如何重置 MySQL 8.0 Root 用户密码 当遇到 `ERROR 1045 (28000): access denied for user 'root'@'localhost'` 错误时,这通常意味着输入了错误的密码或未提供正确的凭证尝试访问数据库。对于 MySQL 8.0 版本而言,可以通过以下方式来安全地更改 root 密码。 #### 停止 MySQL 服务 为了能够绕过权限验证机制进入服务器内部执行必要的操作,需要先停止正在运行的服务实例: ```bash sudo systemctl stop mysqld.service ``` #### 启动 MySQL 跳过授权表 接着通过跳过授权表的方式重新启动 MySQL 实例,这样可以允许无认证连接到数据库引擎内: ```bash sudo mysqld_safe --skip-grant-tables & ``` 此命令会在后台开启一个新的进程,并忽略所有的账户权限控制措施[^1]。 #### 登录 MySQL 并更新密码 此时可以直接以 root 用户身份无需任何口令就能成功登陆至 MySQL 控制台环境之中;之后切换到名为 "mysql" 的内置模式下,利用 SQL 查询语句完成对超级管理员账号的新密设置工作: ```sql USE mysql; FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswordHere'; ``` 上述代码片段中的 `'NewPasswordHere'` 应替换为自己想要设定的具体字符串作为新密码[^3]。 请注意,在 MySQL 8.0 中不再推荐使用 `UPDATE` 和 `SET PASSWORD()` 函数直接修改用户的 `authentication_string` 字段值,而是采用更现代且更为安全的方法即 `ALTER USER ... IDENTIFIED BY ...` 来实现相同目的[^4]。 #### 关闭临时会话并恢复正常运作状态 一旦完成了以上步骤,则应当立即终止当前处于特殊配置下的守护程序实例,移除之前所做的改动(如果有的话),最后再正常恢复常规条件下的持久化存储子系统的活动状况: ```bash exit # 退出 MySQL shell sudo killall -9 mysqld_safe mysqld sudo systemctl start mysqld.service ``` 至此整个流程结束,现在应该可以用刚刚创建好的全新凭据顺利连入目标主机上的关系型数据管理系统里去了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值