MySQL 8.0 初始密码在 log 中没有的解决方法

介绍

在 MySQL 8.0 版本中,安装后默认情况下,初始密码不再保存在 log 文件中。这是为了增强安全性而做出的改变。这意味着如果你忘记了初始密码,那么将无法通过查看 log 文件来找回密码。本文将介绍如何解决这个问题,并提供详细的步骤和代码示例。

解决方法

为了解决 MySQL 8.0 初始密码不在 log 文件中的问题,你需要通过以下步骤进行操作:

步骤 操作
1 停止 MySQL 服务
2 在配置文件中添加一行,以跳过密码验证
3 启动 MySQL 服务
4 重置 root 用户密码
5 移除配置文件中的密码跳过选项
6 重启 MySQL 服务

下面将详细介绍每个步骤需要做什么,并提供相应的代码示例。

步骤 1: 停止 MySQL 服务

首先,你需要停止正在运行的 MySQL 服务。在终端中执行以下命令:

sudo service mysql stop

步骤 2: 在配置文件中添加密码跳过选项

打开 MySQL 配置文件(通常是 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf),在 [mysqld] 部分添加以下内容:

skip-grant-tables

这行代码将跳过密码验证,允许你登录 MySQL 服务器。

步骤 3: 启动 MySQL 服务

保存配置文件并启动 MySQL 服务:

sudo service mysql start

步骤 4: 重置 root 用户密码

现在你可以使用以下命令登录到 MySQL 服务器,然后重置 root 用户的密码:

mysql -u root

一旦进入 MySQL 服务器,运行以下 SQL 命令来重置 root 用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

请将 new_password 替换为你想要设置的新密码。注意,这里的密码需要符合 MySQL 的密码要求。

步骤 5: 移除配置文件中的密码跳过选项

回到配置文件,将之前添加的 skip-grant-tables 一行删除或注释掉。

步骤 6: 重启 MySQL 服务

最后,重新启动 MySQL 服务使更改生效:

sudo service mysql restart

现在你可以使用新设置的密码登录到 MySQL 服务器了。

关系图

下面是一个简化的关系图,展示了每个步骤之间的依赖关系和操作流程:

erDiagram
    step1 --|> step2
    step2 --|> step3
    step3 --|> step4
    step4 --|> step5
    step5 --|> step6

以上就是解决 MySQL 8.0 初始密码不在 log 文件中的方法。按照上述步骤操作,你将能够重置 root 用户的密码并恢复对 MySQL 服务器的访问。希望这篇文章对你有帮助!