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日

相关文章

  • Oracle存储过程游标用法分析

    Oracle存储过程游标用法分析 什么是Oracle存储过程游标? 在Oracle中,存储过程是一个可重用的过程,它是一组预定义的PL/SQL代码块,可以在数据库中多次执行。存储过程可以显著提高性能,因为它们可以在单个调用中执行多个SQL语句,从而减少了网络流量和数据库访问时间。游标是一个PL/SQL指针,可以通过它来处理多个查询结果集,使存储过程变得灵活且…

    database 2023年5月21日
    00
  • 从零开始用DataGrip的安装及使用教程

    从零开始用DataGrip的安装及使用教程 安装DataGrip DataGrip是一款付费的数据库管理工具,需要在官网购买后下载安装。具体的安装步骤如下: 打开DataGrip官网(https://www.jetbrains.com/datagrip/),点击右上角的“Buy”或者“Free Trial”按钮进入购买或者免费试用页面。 选择对应的操作系统(…

    database 2023年5月22日
    00
  • 浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户) 什么是vsftpd? vsftpd(Very Secure FTP Daemon)是一款免费的FTP服务器软件,是目前用得最广泛、最受欢迎的 Linux FTP 服务器软件之一。 vsftpd服务配置 在Linux中,配置vsftpd服务一般需要以下步骤: 安装vsftpd软件包 配置vsftpd…

    database 2023年5月22日
    00
  • C++连接mysql数据库并读取数据的具体步骤

    通过C++连接MySQL数据库并读取数据,我们需要按照以下步骤进行: 步骤一:安装MySQL C++ Connector 我们需要先从官方网站下载MySQL C++ Connector的安装包,然后根据自己的操作系统安装。 Windows:以管理员身份运行CMD,进入MySQL Connector C++ 安装文件目录,使用如下命令执行安装文件: shell…

    database 2023年5月22日
    00
  • [GO]go redis实现滑动窗口限流-redis版

    上一篇是单机当前进程的滑动窗口限流 , 这一个是使用go redis list结构实现的滑动窗口限流 , 原理都一样 , 但是支持分布式 原理可以参考上一篇介绍 func LimitFreqs(queueName string, count uint, timeWindow int64) bool { currTime := time.Now().Unix(…

    Redis 2023年4月11日
    00
  • mysql中is null语句的用法分享

    当我们需要查询某个字段的值是否为 null 时,可以使用 MySQL 中的 is null 语句进行查询。 具体用法如下: SELECT * FROM table_name WHERE column_name IS NULL; 在此语句中,我们使用了 SELECT 语句来选择表格中所有的列,然后使用 WHERE 语句来筛选出其中的行。 而在 WHERE 语句…

    database 2023年5月22日
    00
  • mysql日期和时间的间隔计算实例分析

    标题设置 MySQL日期和时间的间隔计算实例分析 简介 在 MySQL 中,可以使用各种函数计算日期和时间之间的间隔。这些函数包括DATEDIFF、TIMESTAMPDIFF、DATE_SUB等。本文将详细介绍如何在 MySQL 中使用这些函数进行日期和时间间隔计算,并提供实例分析。 示例1:计算两个日期之间的天数间隔 假设有以下数据: ID StartDa…

    database 2023年5月22日
    00
  • php安装redis扩展过程介绍

    下面是详细的php安装redis扩展过程介绍攻略。 安装Redis扩展前的准备工作 在安装Redis扩展之前,需要先保证已经安装了Redis服务器,可以通过以下命令检查Redis是否已经安装: redis-cli ping 如果输出为PONG,则表示Redis服务器已经启动,在此基础上开始安装Redis扩展。 安装Redis扩展 步骤1:下载Redis扩展源…

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