在 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
相关文章
如何在 MySQL 中声明和使用变量
发布时间:2024/03/26 浏览次数:115 分类:MySQL
-
当你需要在 MySQL 中的脚本中存储单个值时,最好的方法是使用变量。变量有不同的种类,有必要知道何时以及如何使用每种类型。
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
发布时间:2024/03/26 浏览次数:82 分类:MySQL
-
你将了解阻止主机的原因。此外,通过使用 phpMyAdmin 和命令提示符刷新主机缓存来解除阻塞的不同方法和效果。