Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

2.9.4 保护初始 MySQL 帐户

MySQL 安装过程涉及初始化数据目录,包括 mysql 系统模式中的授权表,该表定义了 MySQL 帐户。有关详细信息,请参阅 第 2.9.1 节,“初始化数据目录”

本节描述了如何为安装过程中创建的初始 root 帐户分配密码,如果您尚未这样做。

Note

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

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

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

  • 使用 macOS 安装程序时,会生成一个初始随机密码,该密码将显示在对话框中。

  • 使用 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 节,“如何重置根密码”

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