在 Ubuntu 中重置 MySQL root 密码
本篇文章介绍了我们需要在 Ubuntu 中重置 MySQL root 密码的两种情况。 第一,当我们忘记了root密码,想要重新设置; 其次,当我们无法使用 mysql_secure_installation 设置 root 密码时。
本教程中给出的说明已经使用 MySQL 版本 8.0.29 和 Ubuntu 20.04.4 进行了测试。 让我们看看下面两种情况的解决方案。
在 Ubuntu 中重置忘记的 MySQL root 密码
为数据库保留一个强密码是正确的,但记住它可能很困难。 如果您忘记了 MySQL root 密码怎么办?
不要恐慌! 我们中的许多人都面临这个问题,但有一种方法可以更新它。
-
使用以下命令检查您的 MySQL 版本
$ mysql --version
-
关闭 MySQL 服务器。
这样,我们就可以很方便地以安全模式重启它来重置root密码。 您将必须输入系统的根密码,在我们的例子中是 Ubuntu。
-
要在没有表授权的情况下启动 MySQL 服务器,我们使用以下命令更新 systemd 配置文件,以便在启动时将额外的命令行参数传递给 MySQL 服务器。
sudo systemctl edit mysql
这样,我们就可以更新MySQL的默认服务参数了。
将以下内容添加到刚刚在 nano 编辑器中打开的空文件中。
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
此处,ExecStart 首先清除所有默认值,然后为 systemd 提供包含不同参数的新启动命令。 这些参数禁止加载网络和授权表。
-
要应用更新,请执行以下命令以重新加载 systemd 配置。
sudo systemctl daemon-reload
-
使用以下命令启动 MySQL 服务器; 它不会产生任何输出,但您可以检查 MySQL 服务器的状态。
sudo systemctl start mysql
-
我们以 root 用户身份连接到数据库。
sudo mysql -u root
-
现在,我们可以更改密码,但在此之前,请使用以下命令告诉数据库服务器重新加载授权表。
mysql> FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'my_new_password';
太棒了! MySQL root 用户的密码现已更改。 输入 exit 退出 MySQL shell。
-
通过执行以下命令将 MySQL 服务器恢复为正常设置。
sudo systemctl revert mysql
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
-
要应用更改,请重新加载 systemd 配置。
sudo systemctl daemon-reload
-
按如下方式重新启动 MySQL 服务器。
sudo systemctl restart mysql
-
现在,执行以下语句以使用新密码作为 MySQL root 用户登录。
mysql -u root -p
修复使用 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.
不用担心! 这是解决方案。
- 终止 mysql_secure_installation 进程或关闭终端。
-
使用以下语句登录MySQL服务器。
sudo mysql
-
执行以下 ALTER 语句。 不要忘记用您的密码替换 my_new_password。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';
-
使用以下语句使用新密码登录。
mysql -u root -p
相关文章
使用 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() 的组合。
使用 Ubuntu 连接远程 MySQL 服务器的不同方法
发布时间:2023/05/09 浏览次数:97 分类:MySQL
-
在本文中我们将学习如何使用 Ubuntu 连接远程 MySQL 服务器来操作数据以及启动和停止 MySQL 服务器。
在 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)。