使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失

当 MySQL 数据库中的 ROOT 用户密码丢失导致无法登录时,可以通过使用 SKIP-GRANT-TABLES 的方式修改密码。下面是详细讲解:

准备

在开始操作之前,需要先进行一些准备工作:

  • 停止 MySQL 服务
  • 找到 MySQL 数据库的配置文件 my.cnf,如果无法找到,可以尝试在终端使用以下命令查找:find / -name my.cnf
  • 备份 MySQL 数据库,以便在操作失败时恢复数据

操作步骤

  1. 修改 my.cnf 配置文件

在 my.cnf 配置文件中,找到以下行:

[mysqld]

在该行的下方添加以下内容:

skip-grant-tables

修改完成后保存并退出。

  1. 启动 MySQL 服务

在终端中使用以下命令启动 MySQL 服务:

$ sudo service mysql start
  1. 连接到 MySQL 数据库

在终端中使用以下命令连接到 MySQL 数据库:

$ mysql -u root

这里不需要输入密码,因为已经跳过了授权表。

  1. 更新 ROOT 用户密码

现在已经成功登录到 MySQL 数据库,可以执行 SQL 命令来更新 ROOT 用户密码了,例如将密码设置为 newpassword

mysql> update mysql.user set authentication_string=password('newpassword') where user='root';

更新完成后,刷新授权表:

mysql> flush privileges;
  1. 恢复 my.cnf 配置文件

将 my.cnf 的修改撤销,去掉之前添加的 skip-grant-tables

#skip-grant-tables

修改完成后保存并退出。

  1. 重启 MySQL 服务

在终端中使用以下命令重启 MySQL 服务:

$ sudo service mysql restart
  1. 连接测试

使用新密码连接 MySQL 数据库,如果可以正常登录,则说明修改密码成功了。

示例说明

示例一:在 Ubuntu 上使用 SKIP-GRANT-TABLES 解决 MYSQL ROOT 密码丢失

在 Ubuntu 上,可以按照以下步骤操作解决 MYSQL ROOT 密码丢失问题。

  1. 打开终端,并停止 MySQL 服务:
$ sudo service mysql stop
  1. 找到 my.cnf 配置文件,并添加 skip-grant-tables 选项:
$ sudo nano /etc/mysql/my.cnf

在文件中找到 [mysqld] 一行,在该行下一行添加 skip-grant-tables,保存并退出编辑器。

  1. 启动 MySQL 服务并进入 MySQL:
$ sudo service mysql start
$ mysql -u root
  1. 修改 ROOT 用户密码:
mysql> update mysql.user set authentication_string=password('newpassword') where user='root';
  1. 刷新授权表并退出 MySQL:
mysql> flush privileges;
mysql> quit
  1. 恢复 my.cnf 配置文件:
$ sudo nano /etc/mysql/my.cnf

删除刚才添加的 skip-grant-tables 选项,保存并退出编辑器。

  1. 重启 MySQL 服务:
$ sudo service mysql restart
  1. 使用新密码登录 MySQL:
$ mysql -u root -p

示例二:在 CentOS 上使用 SKIP-GRANT-TABLES 解决 MYSQL ROOT 密码丢失

在 CentOS 上,可以按照以下步骤操作解决 MYSQL ROOT 密码丢失问题。

  1. 打开终端,并停止 MySQL 服务:
$ sudo systemctl stop mariadb
  1. 找到 my.cnf 配置文件,并添加 skip-grant-tables 选项:
$ sudo nano /etc/my.cnf

在文件中找到 [mysqld] 一行,在该行下一行添加 skip-grant-tables,保存并退出编辑器。

  1. 启动 MySQL 服务并进入 MySQL:
$ sudo systemctl start mariadb
$ sudo mysql -u root
  1. 修改 ROOT 用户密码:
mysql> update mysql.user set authentication_string=password('newpassword') where user='root';
  1. 刷新授权表并退出 MySQL:
mysql> flush privileges;
mysql> quit
  1. 恢复 my.cnf 配置文件:
$ sudo nano /etc/my.cnf

删除刚才添加的 skip-grant-tables 选项,保存并退出编辑器。

  1. 重启 MySQL 服务:
$ sudo systemctl restart mariadb
  1. 使用新密码登录 MySQL:
$ mysql -u root -p

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySQL5.6主从复制(mysql数据同步配置)

    下面是MySQL5.6主从复制(mysql数据同步配置)的完整攻略: 什么是MySQL主从复制? MySQL主从复制是一种常用的数据同步技术,可以将一个MySQL数据库的数据复制到其他MySQL实例中。在主从复制中,一个数据库被标记为“主数据库”,其他数据被标记为“从数据库”。在主数据库上发生的任何更改都将自动从主数据库传输到从数据库,确保从数据库的数据与主…

    database 2023年5月22日
    00
  • 带你了解mybatis如何实现读写分离

    如何实现MyBatis的读写分离 MyBatis是一款优秀的ORM框架,支持多种数据库,本文将介绍如何使用MyBatis实现读写分离。 读写分离是指将读和写请求分流到不同的数据库节点,以提高数据库系统的性能和可用性。将写操作集中在主数据库节点上,而读操作则分流到多个从数据库节点上处理。 下面,我们将介绍MyBatis的两种读写分离实现方法:第一种是使用MyB…

    database 2023年5月21日
    00
  • 如何对 MongoDB 进行性能优化(五个简单步骤)

    下面我将为您详细介绍“如何对 MongoDB 进行性能优化”这个话题。本文将为您提供五个简单的步骤,帮助您对 MongoDB 进行性能优化。 步骤一:优化查询 MongoDB 的查询操作是其中一个需要优化的地方,以下是一些可供参考的查询优化技巧: 创建合适的索引 避免全局扫描,尽可能使用索引 对于大数据集查询,考虑分片 避免 $where 子句,因为它会导致…

    database 2023年5月21日
    00
  • 详解Docker 下开发 hyperf 完整使用示例

    本文将详细介绍在 Docker 环境下,如何使用 Hyperf 开发应用,并给出完整的使用示例。主要包括以下几个部分。 安装 Docker 本文的演示基于 Docker 环境,因此需要先安装 Docker。Docker 可以在多个平台上运行,如 Windows、macOS 和 Linux。这里以 macOS 为例进行说明。 在 macOS 上安装 Docke…

    database 2023年5月22日
    00
  • SQL – UPDATE 语句

    SQL的UPDATE语句用于修改数据库中的数据,它可以更新一条或多条记录。下面详细讲解SQL-UPDATE语句的完整攻略: UPDATE语法 UPDATE 表名 SET 字段名1=值1, 字段名2=值2, 字段名3=值3… WHERE 条件; 说明: 表名:需要修改的表名。 SET:设置需要更新的字段和字段的值。 字段名:需要更新的字段名。 值:对应字段…

    database 2023年3月27日
    00
  • Asp.Net 网站优化系列之数据库优化 分字诀 分表(纵向拆分,横向分区)

    Asp.Net 是一个非常流行的 Web 开发框架,同时也是一个功能强大的后台开发工具,本文将深入讲解对于 Asp.Net 网站进行数据库优化的相关技巧。 什么是数据库优化? 数据库优化指的是通过修改数据库结构或查询语句等方法来提高数据库性能的过程。在 Asp.Net 网站的开发过程中,优化数据库对于提高网站的效率和性能非常重要。 分字诀 在进行数据库优化时…

    database 2023年5月19日
    00
  • Redis在java开发中使用

    1.什么是redis?   redis是当今基本所有互联网产品都在使用的一种提供键值对形式的内存数据库。之所以说是内存数据库,是因为redis基于内存的读取和写入相比传统的数据库基于磁盘IO快上数倍。于是乎redis在现在的应用中使用的非常广泛。主要的作用在于:  1.1、提供缓存服务,存储访问频率高的热数据防止穿透到数据库  1.2、在分布式系统中可以作为…

    Redis 2023年4月13日
    00
  • IntelliJ IDEA 2022.1 正式版发布 (附更新内容汇总)

    IntelliJ IDEA 2022.1 正式版发布 (附更新内容汇总) IntelliJ IDEA 2022.1 是一款全球知名的Java开发环境,于近日正式发布。它拥有许多新特性,可以使Java开发更加高效。下面将详细介绍IntelliJ IDEA 2022.1 的更新内容和操作流程。 更新内容汇总 IntelliJ IDEA 2022.1 中的主要更新…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部