3.4 MySQL初始帐户安全

MySQL安装过程涉及初始化数据目录,包括mysql定义MySQL帐户的系统模式。详情请参见第3.1节“初始化数据目录”

介绍为初始值分配密码的操作步骤在MySQL安装过程中创建的帐户,如果您还没有这样做。

请注意

执行本节中描述的过程的其他方法:

  • 在Windows上,您可以在MySQL安装程序的安装过程中执行该过程MySQL安装程序).

  • 在所有平台上,MySQL发行版包括mysql_secure_installation这是一个命令行实用程序,它自动化了保护MySQL安装的大部分过程。

  • 在所有平台上,MySQL Workbench都是可用的,并提供了管理用户帐户的能力(参见MySQL工作台).

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

  • 在Windows上,使用MySQL安装程序执行的安装提供了分配密码的选项。

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

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

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

  • 用于手动执行的数据目录初始化mysqld——初始化,mysqld生成一个初始随机密码,将其标记为过期,并将其写入服务器错误日志。看到第3.1节“初始化数据目录”

mysql.usergrant表定义了初始MySQL用户帐户及其访问权限。MySQL的安装只创建一个“根”@“localhost”超级用户帐户,拥有所有特权,可以做任何事情。如果帐户有一个空密码,你的MySQL安装是不受保护的:任何人都可以连接到MySQL服务器没有密码并被授予一切特权。

“根”@“localhost”帐户中也有一行mysql.proxies_priv表,它支持授予代理特权的“@”,即针对所有用户和所有主机。这使设置代理用户,以及将设置代理用户的权限委派给其他帐户。看到第4.18节“代理用户”

为初始MySQL指定密码帐户,使用以下步骤。取代根密码在使用您想使用的密码的示例中。

如果服务器未运行,则启动服务器。有关说明,请参见第3.2节“启动服务器”

最初的帐户可能有密码,也可能没有。选择以下任一适用程序:

  • 如果帐户存在且初始随机密码已过期,请以使用该密码,然后选择新密码。使用初始化数据目录就是这种情况mysqld——初始化,手动或使用安装程序,该安装程序不提供在安装操作期间指定密码的选项。因为密码已经存在,所以必须使用它连接到服务器。但是由于密码过期,您只能将该帐户用于选择新密码以外的任何目的,直到您选择了一个新密码。

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

    2. 使用密码方式:

      shell> -u root -p Enter password:(此处输入随机root密码)
    3. 选择新密码替换随机密码:

      mysql>修改用户名root @ localhost根密码”;
  • 如果帐户存在但没有密码,请以不使用密码,然后设置一个密码。如果使用初始化数据目录,则会出现这种情况mysqld——initialize-insecure

    1. 使用无密码:

      Shell > mysql -u root——skip-password
    2. 设置密码:

      mysql>修改用户名root @ localhost根密码”;

赋值之后帐户需要密码,您必须在使用该帐户连接到服务器时提供该密码。方法连接到服务器mysql客户端,使用以下命令:

shell> -u root -p Enter password:(此处输入root密码)

用来关闭服务器mysqladmin,使用该命令:

shell> mysqladmin -u root -p shutdown输入password:(此处输入root密码)
请注意

有关设置密码的其他信息,请参见第4.14节“分配帐户密码”.如果你忘了你的设置后的密码,参见如何重置Root用户密码

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