Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Securing the Initial MySQL Account

2.9.4 保护初始 MySQL 帐户

MySQL 安装过程涉及初始化数据目录,包括在 mysql 系统架构中定义的 MySQL 帐户。详细信息,请参见第 2.9.1 节,“初始化数据目录”

本节描述了如何在 MySQL 安装过程中为初始 root 帐户分配密码,如果您还没有这样做过。

Note

本节所述过程的替代方法:

在以下情况下,密码可能已经分配给初始帐户:

  • 在 Windows 平台上,使用 MSI 安装程序和 MySQL 配置器安装时,您可以选择分配密码。

  • 使用macOS安装程序生成的初始随机密码, installer 在对话框中显示给用户。

  • 使用RPM包安装生成的初始随机密码,写入到服务器错误日志中。

  • 使用Debian包安装提供了分配密码的选项。

  • 手动使用mysqld --initialize初始化数据目录时,mysqld生成初始随机密码,标记为过期,并写入到服务器错误日志中。请参阅第2.9.1节,“初始化数据目录”

mysql.user授权表定义了初始MySQL用户账户和访问权限。MySQL安装创建的只有一个'root'@'localhost'超级用户账户,拥有所有权限,可以做任何事情。如果root账户密码为空,您的MySQL安装是未保护的:任何人都可以连接到MySQL服务器作为root无密码,并获得所有权限。

"'root'@'localhost'" 帐户在 mysql.proxies_priv 表中也有一行,启用了对所有用户和所有主机的PROXY特权,可以让root设置代理用户,并将授权其他帐户设置代理用户的权限。见第8.2.19节,“代理用户”.

为初始 MySQL root 帐户分配密码,请按照以下步骤进行。将root-password在示例中替换为要使用的密码。

如果服务器未运行,先启动它。见第2.9.2节,“启动服务器”.

初始 root 帐户可能有密码,也可能没有。选择以下过程之一:

  • 如果root 帐户已经存在,使用随机密码连接到服务器,然后选择新的密码。这是数据目录初始化时使用mysqld --initialize,手动或使用不提供指定密码的安装程序。如果密码存在,您必须使用它连接到服务器。但是,因为密码已经过期,您不能使用帐户除选择新密码外用于其他任何目的,直到您选择一个新的密码。

    1. 如果您不知道初始随机密码,请查看服务器错误日志。

    2. 使用密码连接到服务器:root

      $> mysql -u root -p
      Enter password: (enter the random root password here)
    3. 选择一个新的密码来替换随机密码:

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
  • 如果root账户存在但没有密码,连接到服务器作为root使用无密码,然后分配密码。这是初始化数据目录时使用mysqld --initialize-insecure的情况。

    1. 连接到服务器作为root使用无密码:

      $> mysql -u root --skip-password
    2. 分配密码:

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

在将root账户分配密码后,您必须在每次连接到服务器时提供该密码。例如,使用mysql客户端,使用以下命令:

$> mysql -u root -p
Enter password: (enter root password here)

使用mysqladmin关闭服务器,使用以下命令:

$> mysqladmin -u root -p shutdown
Enter password: (enter root password here)
Note

关于设置密码的更多信息,请参阅第8.2.14节,“账户密码分配”。如果您忘记root密码,请参阅第B.3.3.2节,“重置 root 密码”

设置其他账户,请参见第8.2.8节,“添加账户、分配权限和删除账户”