|
|
51CTO旗下网站
|
|
移动端

如何在MySQL 8中重置root密码

MySQL中的用户密码存储在用户表中,密码重置实际上是改变该表中记录的值。 要在忘记密码的情况下更改密码,我们的想法是绕过MySQL的身份验证进入系统并使用SQL命令更新记录密码值。

作者:聆听世界的鱼来源:Linux公社|2018-12-27 13:35

如何在MySQL 8中重置root密码

MySQL中的用户密码存储在用户表中,密码重置实际上是改变该表中记录的值。 要在忘记密码的情况下更改密码,我们的想法是绕过MySQL的身份验证进入系统并使用SQL命令更新记录密码值。

在MySQL 5中,可以使用--skip-grant-tables选项启动MySQL服务,此选项将告诉服务在启动时跳过加载授权表,因此root用户可以使用空密码登录。

  1. mysqld –skip-grant-tables 

登录后,可以在SQL命令下运行更改密码

  1. UPDATE user SET authentication_string='' WHERE user='root'

这会将密码设置为空。

但是,如果没有在MySQL 8中进行一些调整,似乎--skip-grant-tables无法正常工作。那么我们可以做些什么呢? 有两种可能的选择。

创建一个--init-file.并使用选项--init-file运行MySQL服务。 在init文件中,输入要更新密码值的SQL命令。

深入研究如何在MySQL 8中使用--skip-grant-tables。

我们来看看这些选项的工作原理。

选项1: --init-file option

此选项将指定包含要在服务启动之前执行的SQL命令的文件。 因此,我们只需要使用命令更新此文件中的密码并使用此选项启动MySQL服务。 密码将被重置/更新。

第1步:停止MySQL服务

  1. net stop mysql 

步骤2:创建一个txt文件,并将下面的命令放入

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

步骤3:在命令行上启动服务,并使用--init-file选项

  1. mysqld --init-file=/some/path/to/cmd.txt --console 

完成。 注意:当您遇到权限被拒绝的错误时,请以特权用户身份运行该命令。 如果你看到如下错误:

  1. 2018-12-27T05:51:23.739089Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.13) starting as process 1912  
  2. 2018-12-27T05:51:23.759426Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.  
  3. 2018-12-27T05:51:23.761196Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.  
  4. 2018-12-27T05:51:23.762550Z 0 [ERROR] [MY-010119] [Server] Aborting  
  5. 2018-12-27T05:51:23.766230Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.13) MySQL Community Server - GPL. 

请运行以下命令初始化数据目录

  1. mysqld --initialize --console 

选项2:使用--skip-grant-tables选项

与MySQL 5相比,MySQL 8中还需要添加更多选项。

  1. mysqld --console --skip-grant-tables --shared-memory 

启动服务后,使用空密码登录

  1. mysql -u root 

然后执行SQL命令更新密码

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

通常建议选项1。 并希望本文对你有所帮助。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文***更新链接地址:https://www.linuxidc.com/Linux/2018-12/156052.htm 

【编辑推荐】

  1. MySQL主从复制的常见拓扑、原理分析以及如何提高效率
  2. 新说MySQL事务隔离级别!
  3. 我为什么放弃MySQL?选择了MongoDB
  4. 数据库大师成长日记:SQL Server和MySQL常用SQL区别
  5. 为什么Oracle不断抨击自家品MySQL?
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

Java面向对象编程

Java是当前最流行的程序设计语言之一。本书以Java最新版本Java SE5为基础,涵盖了Java SE5最新特性,由浅入深地介绍了Java SE5的主要内容。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客