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

yizhihongxing

当 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日

相关文章

  • Spring Boot整合 NoSQL 数据库 Redis详解

    下面我会给您讲解一下“Spring Boot整合 NoSQL 数据库 Redis”的完整攻略。 简介 Redis是一个基于内存的高性能key-value数据库,支持多种数据类型,可应用于缓存、消息队列、实时统计等场景。在Spring Boot应用中,我们可以很方便地集成Redis来实现快速高效的数据存取。 环境配置 要使用Redis,首先需要在本地安装Red…

    database 2023年5月22日
    00
  • 浅谈运维工程师的前景和职业发展

    浅谈运维工程师的前景和职业发展 什么是运维工程师 运维工程师是指负责公司的系统、网络、数据库等基础设施的运行和维护的工程师。其主要工作包括:系统运维、网络运维、数据库运维、安全运维等方面。 运维工程师的前景 随着互联网的快速发展,云计算、大数据等技术的迅猛发展,各行各业对于运维工程师的需求日益增加。特别的,在数字化时代背景下,互联网行业的企业对运维人员的需求…

    database 2023年5月19日
    00
  • PouchDB 和 Cassandra 的区别

    PouchDB和Cassandra是两种不同类型的数据库系统,它们之间有很多区别。 什么是PouchDB和Cassandra? PouchDB是一个基于JavaScript的数据库系统,它是一个开源、跨平台的文档存储库。PouchDB可以在浏览器、移动端、桌面应用等多种环境中使用,并且可以与其他数据库系统(如CouchDB、MySQL等)进行同步。 Cass…

    database 2023年3月27日
    00
  • 一文教会你在MySQL中使用DateTime

    一文教会你在MySQL中使用DateTime 什么是DateTime? DateTime是MySQL中一种数据类型,用于表示日期和时间。它可以存储从1000-01-01 00:00:00到9999-12-31 23:59:59之间的日期和时间。DateTime类型占用8个字节的存储空间。 如何使用DateTime类型? 在MySQL中使用DateTime类型…

    database 2023年5月22日
    00
  • SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法

    对于SQL Server作业失败的问题,我们可以采用以下解决方法: 问题背景 在SQL Server管理平台上创建了一个作业,但在运行该作业时,发现提示“无法确定所有者是否有服务器访问权限”,导致作业运行失败。 解决方法 方法一:更改作业所有者 打开SQL Server管理平台,在左侧“对象资源管理器”中找到作业所在的数据库; 找到该数据库下的“安全性”文件…

    database 2023年5月21日
    00
  • 计算机二级考试MySQL知识点 常用MYSQL命令

    MYSQL知识点概述 MySQL是一个开源的关系型数据库管理系统,在计算机二级考试中,也是常见的考点之一。掌握MYSQL的相关知识,可以帮助我们更好地理解数据库的操作和应用,从而提高数据库的设计效率。下面主要介绍MYSQL考试中比较重要的几个方面,如常用MYSQL命令,此外还包括 MYSQL的基本操作,MYSQL的基本语法。 常用MYSQL命令 (1)MYS…

    database 2023年5月19日
    00
  • MySQL数据库迁移快速导出导入大量数据

    针对MySQL数据库的迁移快速导出导入大量数据,具体的攻略如下: 1. 导出数据 在导出数据前,需要先登录MySQL数据库,并选择要导出的数据库。 $ mysql -u [username] -p [password] [database_name] 其中,[username]和[password]是你的登录用户名和密码,[database_name]是要导…

    database 2023年5月22日
    00
  • Java连接Redis,存储对象获取对象()byte和json),连接池

    Jedis连接Redis,Lettuce连接Redis Jedis连接Redis 1. 创建maven项目 2. 引入依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId&gt…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部