linux下mysql忘记密码的解决方法

下面为您详细讲解在 Linux 下 MySQL 忘记密码的解决方法。

解决方法

方法一:通过忘记密码向导重置密码

  1. 停止 MySQL 服务:sudo systemctl stop mysql

  2. 在启动时将 MySQL 服务配置成跳过授权表(即跳过密码验证)模式启动,并设定一个新密码:

shell
sudo mysqld_safe --skip-grant-tables & # 跳过授权表模式启动 mysql 服务
mysql # 登录到 MySQL 数据库
UPDATE mysql.user SET authentication_string = PASSWORD('your_new_password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务

  1. 启动 MySQL 服务:sudo systemctl start mysql

  2. 用新密码登录 MySQL 数据库:mysql -u root -p(your_new_password)

  3. 更改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

  4. 退出 MySQL 数据库,重新启动 MySQL 服务:sudo systemctl restart mysql

方法二:重置 MySQL root 用户密码

如果上一种方法不起作用,可以尝试使用如下命令重置 MySQL root 用户密码:

sudo systemctl stop mysql # 停止 MySQL 服务
sudo mysqld --skip-grant-tables --skip-networking & # 跳过授权表和网络连接是安全的
mysql -u root # 登录到 MySQL 数据库
USE mysql;
UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务
sudo systemctl start mysql # 重启 MySQL 服务

如果您的数据库有多个用户,则对应更改第 5、6 行处的 User='root' (例如:User='example')即可。

示例说明

示例一:通过忘记密码向导重置密码

当您在 Ubuntu 18.04 上的 MySQL 服务器中忘记密码时,您可以按照以下步骤重置密码:

  1. 停止 MySQL 服务:

shell
sudo systemctl stop mysql

  1. 以跳过授权表模式启动 MySQL 服务器,并设定一个新密码:

shell
sudo mysqld_safe --skip-grant-tables & # 跳过授权表模式启动 mysql 服务
mysql # 登录到 MySQL 数据库
UPDATE mysql.user SET authentication_string = PASSWORD('your_new_password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务

  1. 启动 MySQL 服务:

shell
sudo systemctl start mysql

  1. 使用新密码登录 MySQL 数据库:

shell
mysql -u root -p(your_new_password)

示例二:重置 MySQL root 用户密码

如果无法通过忘记密码向导进行密码重置,可以尝试以下方式:

  1. 停止 MySQL 服务:

shell
sudo systemctl stop mysql

  1. 以忽略授权表和网络连接启动 MySQL 服务器,并登陆到 MySQL 数据库:

shell
sudo mysqld --skip-grant-tables --skip-networking &
mysql -u root

  1. 在 MySQL 数据库中更改 root 用户的密码:

shell
USE mysql;
UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;

  1. 重新启动 MySQL 服务器:

shell
sudo systemctl start mysql

通过以上两种方式,您就可以轻松重新设置 Linux 下 MySQL 的密码了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下mysql忘记密码的解决方法 - Python技术站

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

相关文章

  • 批量 kill mysql 中运行时间长的sql

    下面是“批量 kill mysql 中运行时间长的sql”的完整攻略: 1. 确认需要 kill 的 SQL 语句 可以通过执行以下命令查看当前 MySQL 实例中运行时间超过5秒的 SQL 语句: SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM INFORMATION_SCHEMA.PR…

    database 2023年5月22日
    00
  • 详解MySQL逻辑运算符

    MySQL提供了多种逻辑运算符,用于对比和处理表达式结果的布尔值(True或False)。以下是主要的逻辑运算符及其使用方法: AND(与)运算符 AND运算符用来组合两个或更多的条件,只有当所有条件都为True时,AND运算符的结果才为True。其语法为: expr1 AND expr2 其中,expr1和expr2都是表达式。如果expr1和expr2都…

    MySQL 2023年3月9日
    00
  • .NET连接池的问题详解

    .NET连接池的问题详解 什么是连接池 .NET连接池是一种数据库连接管理的机制。在应用程序初始化时,连接池会创建一定数量的数据库连接,并把它们存放在一个连接池中,随着应用程序的使用,当需要打开数据库连接时,连接池会从池中选取一个可用连接,当使用完毕后,该连接并不是被关闭,而是归还到连接池中,以便于下一次调用直接从池中获取。 连接池的优点 连接池具有以下优点…

    database 2023年5月21日
    00
  • Mysql数据库函数之函数的用法小结

    下面是Mysql数据库函数之函数的用法小结的详细攻略: 第一部分:Mysql数据库函数 Mysql数据库函数是Mysql数据库提供的一些专门用于处理数据的函数,这些函数可以用来处理和转换数据,或者可以帮助我们优化代码的执行效率。 第二部分:常见的函数及其用法 1. 字符串函数 concat(): 将多个字符串合并成一个字符串 substr(): 取出指定字符…

    database 2023年5月22日
    00
  • docker搭建CMS点播系统带播放器功能

    下面我将详细讲解如何使用Docker搭建CMS点播系统带播放器功能。 简介 Docker是目前非常流行的容器化技术,通过使用Docker我们可以方便的创建、部署和运行应用程序。CMS点播系统是一款视频点播系统,而播放器是视频点播系统必不可少的组成部分。 环境准备 为了搭建CMS点播系统带播放器功能,您需要事先准备好以下环境:- 安装Docker:如果您还没有…

    database 2023年5月22日
    00
  • MySQL使用二进制日志还原数据库

    MySQL 是一种开源的关系型数据库管理系统,它的日志文件是用于恢复和备份的重要部分。MySQL 支持三种类型的二进制日志,分别是:二进制日志、事务日志、和错误日志。其中,二进制日志是 MySQL 最常用的日志类型,它记录了所有添加、更改和删除表记录的 SQL 语句,是一个重要的恢复和备份工具。本文将详细介绍如何使用 MySQL 二进制日志还原数据库。 启用…

    MySQL 2023年3月10日
    00
  • 分享几道关于MySQL索引的重点面试题

    关于MySQL索引的重点面试题攻略,我将从以下几个方面着手讲解: MySQL索引的概念及作用 MySQL常用的索引类型 MySQL索引的优化策略 MySQL索引的使用注意事项 接下来,我将分述每一个方面。 1. MySQL索引的概念及作用 MySQL索引是在MySQL数据库上创建的一种数据结构,其主要作用是提高查询效率。如果没有索引,MySQL查询时会全表扫…

    database 2023年5月21日
    00
  • Java如何读取配置文件并赋值静态变量

    Java读取配置文件并将值赋给静态变量的操作是应用程序中常见的需求。下面是以properties文件为例,讲解如何读取并赋值静态变量的步骤: 1. 准备配置文件 首先需要准备一个.properties文件,其中包含一组键值对,如下所示: jdbc.url=jdbc:mysql://localhost:3306/test jdbc.username=root …

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