迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

在 Ubuntu 中重置 MySQL root 密码

作者:迹忆客 最近更新:2023/05/07 浏览次数:

本篇文章介绍了我们需要在 Ubuntu 中重置 MySQL root 密码的两种情况。 第一,当我们忘记了root密码,想要重新设置; 其次,当我们无法使用 mysql_secure_installation 设置 root 密码时。

本教程中给出的说明已经使用 MySQL 版本 8.0.29 和 Ubuntu 20.04.4 进行了测试。 让我们看看下面两种情况的解决方案。


在 Ubuntu 中重置忘记的 MySQL root 密码

为数据库保留一个强密码是正确的,但记住它可能很困难。 如果您忘记了 MySQL root 密码怎么办?

不要恐慌! 我们中的许多人都面临这个问题,但有一种方法可以更新它。

  1. 使用以下命令检查您的 MySQL 版本
    $ mysql --version
    
  2. 关闭 MySQL 服务器。

    这样,我们就可以很方便地以安全模式重启它来重置root密码。 您将必须输入系统的根密码,在我们的例子中是 Ubuntu。

  3. 要在没有表授权的情况下启动 MySQL 服务器,我们使用以下命令更新 systemd 配置文件,以便在启动时将额外的命令行参数传递给 MySQL 服务器。
    sudo systemctl edit mysql
    
    只要你按下 Enter,它就会使用 nano 编辑器为你打开一个文件。 我们将使用它来编辑 MySQL 的服务覆盖。

    这样,我们就可以更新MySQL的默认服务参数了。

    将以下内容添加到刚刚在 nano 编辑器中打开的空文件中。

    [Service]
    ExecStart=
    ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
    
    将上面给出的内容粘贴到文件中后,按 Ctrl+X 退出文件,按 Y 保存我们刚刚所做的更新,然后按 Enter 确认文件名。

    此处,ExecStart 首先清除所有默认值,然后为 systemd 提供包含不同参数的新启动命令。 这些参数禁止加载网络和授权表。

  4. 要应用更新,请执行以下命令以重新加载 systemd 配置。
    sudo systemctl daemon-reload
    
  5. 使用以下命令启动 MySQL 服务器; 它不会产生任何输出,但您可以检查 MySQL 服务器的状态。
    sudo systemctl start mysql
    
    这次没有启用网络和授权表。
  6. 我们以 root 用户身份连接到数据库。
    sudo mysql -u root
    
  7. 现在,我们可以更改密码,但在此之前,请使用以下命令告诉数据库服务器重新加载授权表。
    mysql> FLUSH PRIVILEGES;
    
    执行下面的语句来重置 MySQL root 用户的密码。 不要忘记用您容易记住的强密码替换 my_new_password。
    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'my_new_password';
    
    在这里,MySQL 让我们使用自定义身份验证。 因此,上面给出的语句确保 MySQL 现在将使用其默认身份验证通过新密码对 MySQL root 用户进行身份验证。

    太棒了! MySQL root 用户的密码现已更改。 输入 exit 退出 MySQL shell。

  8. 通过执行以下命令将 MySQL 服务器恢复为正常设置。
    sudo systemctl revert mysql
    
    我们会看到类似下面的输出,说明上面的语句已经执行成功。
    Removed /etc/systemd/system/mysql.service.d/override.conf.
    Removed /etc/systemd/system/mysql.service.d.
    
  9. 要应用更改,请重新加载 systemd 配置。
    sudo systemctl daemon-reload
    
  10. 按如下方式重新启动 MySQL 服务器。
    sudo systemctl restart mysql
    
  11. 现在,执行以下语句以使用新密码作为 MySQL root 用户登录。
    mysql -u root -p
    
    系统将要求您输入 MySQL root 用户的密码。 输入新密码即可访问您的数据库服务器。

修复使用 mysql_secure_installation 设置 MySQL root 密码时的错误

第一次安装 MySQL 服务器的用户可能会遇到以下错误,这是在使用 mysql_secure_installation 设置 MySQL root 密码时生成的。

Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

不用担心! 这是解决方案。

  1. 终止 mysql_secure_installation 进程或关闭终端。
  2. 使用以下语句登录MySQL服务器。
    sudo mysql
    
    系统将提示您输入系统的根密码。 输入密码后,您将被带到 MySQL 控制台。
  3. 执行以下 ALTER 语句。 不要忘记用您的密码替换 my_new_password。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';
    
    此外,键入 exit 退出 MySQL shell。
  4. 使用以下语句使用新密码登录。
    mysql -u root -p
    
    最后,您可以以root用户身份登录MySQL服务器。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

在 MySQL 中获取命令历史记录

发布时间:2023/05/09 浏览次数:150 分类:MySQL

本文重点介绍了在 Windows 和 Linux 中获取我们已执行的 MySQL 命令历史记录的各种方法。MySQL命令历史

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

在 Linux 中安装 MySQL 客户端

发布时间:2023/05/09 浏览次数:72 分类:MySQL

在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。

在 MySQL 中转换为十进制

发布时间:2023/05/09 浏览次数:150 分类:MySQL

有时,我们可能需要将一种数据类型转换为另一种数据类型。 下面是我们如何使用带有 DECIMAL(M,D) 的 CAST() 和 CONVERT() 函数在 MySQL 中转换为十进制。

在 MySQL 中获取当前日期和时间

发布时间:2023/05/09 浏览次数:145 分类:MySQL

本篇文章我们将学习 NOW()、CURRENT_TIMESTAMP()(也写为 CURRENT_TIMESTAMP)和 SYSDATE() 来获取 MySQL 中的当前日期和时间。 我们还将看到这三个功能之间的比较。在 MySQL 中获取当前日期和时间

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便