MySQL8下忘记密码后重置密码的办法(MySQL老方法不灵了)

 更新时间:2018年08月11日 23:22:16   作者:代码湾  
这篇文章主要介绍了MySQL8下忘记密码后重置密码的办法,MySQL的密码是存放在user表里面的,修改密码其实就是修改表中记录,重置的思路是是想办法不用密码进入系统,然后用数据库命令修改表user中的密码记录

实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动,而且测试了该参数放在ini文件里面也同样无法启动

MySQL的密码是存放在user表里面的,修改密码其实就是修改表中记录。

重置的思路是是想办法不用密码进入系统,然后用数据库命令修改表user中的密码记录。

查了下,MySQL5系统在网上建议的方法是以–skip-grant-tables参数启动mysql服务,该参数指示在启动时不加载授权表,因此启动成功后root用户可以空密码登陆

mysqld –skip-grant-tables

登陆之后可以用

UPDATE user SET authentication_string=” WHERE user='root';

这类命令设置密码或者将密码置空。

但是,实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动,而且测试了该参数放在ini文件里面也同样无法启动

MySQL8系统密码重置的两个思路

两条思路,或者用–init-file参数在服务启动时加载并运行修改密码的命令文件,该命令一旦执行,服务启动后密码即已经清除或者重置,启动服务后即可以空密码或指定密码登入。

或者继续研究–skip-grant-tables命令行参数下服务不能启动的原因,解决问题,然后启动服务后以空密码登入,手工输入命令,执行清除或者重置mysql.user表中的密码记录字段。

推荐使用前者。

具体操作流程如下:

方法一:利用–init-file参数解决

该参数指定服务启动时先执行一个包含sql命令文件,因此,只需要将重置密码的命令写在该文件中,以此参数指定启动时执行该命令,启动完成即可重置系统密码了。

第一步,关掉系统服务

net stop mysql

第二步,创建一个文本文件,内含一条密码修改命令

ALTER USER ‘root'@'localhost' IDENTIFIED BY ”;

第三步:命令行方式启动服务器,指定启动时执行上述的密码修改命令文件

mysqld –init-file=d:mysqlc.txt –console

具体操作截图

方法二,想办法让–skip-grant-tables参数用起来

同方法一,先关掉系统服务

实测,在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的一些特性导致老方法重置不大管用了,建议使用–init-file参数解决,实测安全可靠。

数据库管理密码丢失是很头疼的事情,如果不能顺利找回,麻烦很大。网上搜索的解决方法多数已经落伍,建议收藏关注本文,以备不时之需。

相关文章

  • Navicat连接服务器MySQL数据库步骤及遇到错误和问题

    Navicat连接服务器MySQL数据库步骤及遇到错误和问题

    Navicat是一款强大的数据库管理工具,可以用来远程连接MySQL服务器,下面这篇文章主要给大家介绍了关于Navicat连接服务器MySQL数据库步骤及遇到错误和问题的相关资料,文中通过代码及图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • LEFT JOIN关联表中ON,WHERE后面跟条件的区别

    LEFT JOIN关联表中ON,WHERE后面跟条件的区别

    本文主要介绍了LEFT JOIN关联表中ON,WHERE后面跟条件的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • mysql性能监控工具Innotop简介及配置

    mysql性能监控工具Innotop简介及配置

    INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具。INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和INNODB运行的状态,以DBA根据结果,可以合理的优化MYSQL,让MYSQL更稳定更高效的运行。
    2014-08-08
  • MySQL中导出用户权限设置的脚本分享

    MySQL中导出用户权限设置的脚本分享

    这篇文章主要介绍了MySQL中导出用户权限设置的脚本分享,本文通过导出mysql.user表中数据实现导出权限设置,需要的朋友可以参考下
    2014-10-10
  • mysql 如何使用JSON_EXTRACT() 取json值

    mysql 如何使用JSON_EXTRACT() 取json值

    这篇文章主要介绍了mysql如何使用JSON_EXTRACT() 取json值的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 浅谈开启magic_quote_gpc后的sql注入攻击与防范

    浅谈开启magic_quote_gpc后的sql注入攻击与防范

    通过启用php.ini配置文件中的相关选项,就可以将大部分想利用SQL注入漏洞的骇客拒绝于门外
    2012-01-01
  • mysql建表常用sql语句个人经验分享

    mysql建表常用sql语句个人经验分享

    熟悉一些常用的建表语句可以提升你建表的速度效率,本文整理了一些,个人感觉还不错,希望对大家有所帮助
    2014-01-01
  • 你知道哪几种MYSQL的连接查询

    你知道哪几种MYSQL的连接查询

    连接(join)查询是将两个查询的结果以“横向对接”的方式合并起来的结果,这篇文章主要给大家介绍了关于MYSQL连接查询的相关资料,需要的朋友可以参考下
    2021-06-06
  • MySQL数据库主从复制原理及作用分析

    MySQL数据库主从复制原理及作用分析

    这篇文章主要介绍了MySQL数据库主从复制原理并分析了主从复制的作用和使用方法,有需要的的朋友可以借鉴参考下,希望可以有所帮助,感谢阅读
    2021-09-09
  • MySQL中case when对NULL值判断的踩坑记录

    MySQL中case when对NULL值判断的踩坑记录

    最近在学习Hive基础知识时,遇到了遇到了Case When Else End语法,这篇文章主要给大家介绍了关于MySQL中case when对NULL值判断的踩坑记录,需要的朋友可以参考下
    2021-12-12

最新评论