文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  保护初始 MySQL 帐户

2.9.4 保护初始 MySQL 帐户

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

本节介绍如何为 MySQL 安装过程中创建的初始 root 帐户分配密码(如果您尚未这样做)。

注意

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

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

  • 在 Windows 上,使用 MSI 安装程序和 MySQL 配置器执行的安装允许您选择分配密码。

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

  • 使用 RPM 软件包进行安装会生成一个初始随机密码,该密码将写入服务器错误日志。

  • 使用 Debian 软件包进行安装允许您选择分配密码。

  • 对于使用 mysqld --initialize 手动执行的数据目录初始化,mysqld 会生成一个初始随机密码,将其标记为已过期,并将其写入服务器错误日志。请参阅第 2.9.1 节,“初始化数据目录”

mysql.user 授权表定义了初始 MySQL 用户帐户及其访问权限。安装 MySQL 只会创建一个 'root'@'localhost' 超级用户帐户,该帐户拥有所有权限并且可以执行任何操作。如果 root 帐户的密码为空,则您的 MySQL 安装将不受保护:任何人都可以 无需密码root 身份连接到 MySQL 服务器并获得所有权限。

'root'@'localhost' 帐户在 mysql.proxies_priv 表中也有一行,该行允许为 ''@''(即所有用户和所有主机)授予 PROXY 权限。这使得 root 可以设置代理用户,以及将设置代理用户的权限委派给其他帐户。请参阅第 8.2.19 节,“代理用户”

要为初始 MySQL root 帐户分配密码,请使用以下过程。将示例中的 root-password 替换为您要使用的密码。

如果服务器未运行,请启动它。有关说明,请参阅第 2.9.2 节,“启动服务器”

初始 root 帐户可能有也可能没有密码。选择以下适用程序之一

  • 如果 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)
注意

有关设置密码的其他信息,请参阅第 8.2.14 节,“分配帐户密码”。如果您在设置 root 密码后忘记了它,请参阅第 B.3.3.2 节,“如何重置 Root 密码”

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