MySQL安装过程涉及初始化数据目录,包括mysql
系统模式中的定义MySQL帐户的授权表 。有关详细信息,请参见第2.10.1节“初始化数据目录”。
本节介绍了如何为root
在MySQL安装过程中创建的初始帐户分配密码 (如果尚未这样做的话)。
注意
执行本节中描述的过程的替代方法:
- 在Windows上,可以使用MySQL Installer在安装过程中执行该过程(请参见第2.3.3节“用于Windows的MySQL Installer”)。
- 在所有平台上,MySQL发行版都包含 mysql_secure_installation,这是一个命令行实用程序,可自动执行许多保护MySQL安装的过程。
- 在所有平台上,都可以使用MySQL Workbench,并且可以管理用户帐户(请参阅 第30章,MySQL Workbench)。
在以下情况下,可能已经为初始帐户分配了密码:
- 在Windows上,使用MySQL Installer执行的安装使您可以选择分配密码。
- 使用macOS安装程序进行安装会生成一个初始随机密码,该密码会在对话框中显示给用户。
- 使用RPM软件包进行安装会生成一个初始随机密码,该密码将写入服务器错误日志中。
- 使用Debian软件包进行安装时,可以选择分配密码。
- 对于使用mysqld --initialize手动执行的数据目录初始化 , mysqld生成一个初始随机密码,将其标记为过期,并将其写入服务器错误日志。请参见第2.10.1节“初始化数据目录”。
该mysql.user
授权表定义了初始MySQL用户账户和访问权限。安装MySQL只会创建一个'root'@'localhost'
拥有所有特权并且可以执行任何操作的超级用户帐户。如果该root
帐户的密码为空,则您的MySQL安装不受保护:任何人都可以root
不使用密码就连接到MySQL服务器,并被授予所有特权。
该'root'@'localhost'
帐户在mysql.proxies_priv
表中还具有一行,可用于授予的PROXY
特权''@''
,即授予所有用户和所有主机的特权 。这样可以root
设置代理用户,以及将设置代理用户的权限委托给其他帐户。请参见第6.2.18节“代理用户”。
要为初始MySQLroot
帐户分配密码,请使用以下过程。将*root-password
*示例替换 为您要使用的密码。
如果服务器未运行,请启动它。有关说明,请参见 第2.10.2节“启动服务器”。
初始root
帐户可能没有密码。选择以下任一过程:
-
如果该
root
帐户的初始随机密码已过期,请root
使用该密码连接到服务器,然后选择一个新密码。如果数据目录是使用mysqld --initialize手动或使用安装程序初始化的,则该目录没有在安装操作期间为您提供指定密码的选项,则是这种情况。因为密码存在,所以必须使用它来连接服务器。但是由于密码已过期,因此除非选择一个新密码,否则您不能将帐户用于选择其他目的,而只能选择一个新密码。-
如果您不知道初始随机密码,请查看服务器错误日志。
-
root
使用密码 连接到服务器:shell> mysql -u root -p Enter password: (enter the random root password here)
复制 -
选择一个新密码来替换随机密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
复制
-
-
如果该
root
帐户存在但没有密码,请root
使用不使用密码的方式连接到服务器,然后分配一个密码。如果使用mysqld --initialize-insecure初始化了数据目录,就是这种情况。-
以
root
不使用密码的方式连接到服务器:shell> mysql -u root --skip-password
复制 -
分配密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
复制
-
在为root
帐户分配密码后,无论何时使用该帐户连接到服务器,都必须提供该密码。例如,要使用mysql客户端连接到服务器 ,请使用以下命令:
shell> mysql -u root -p Enter password: (enter root password here)
复制
要使用mysqladmin关闭服务器,请使用以下命令:
shell> mysqladmin -u root -p shutdown Enter password: (enter root password here)
复制
注意
有关设置密码的更多信息,请参见 第6.2.14节“分配帐户密码”。如果您root
在设置密码后忘记了 密码,请参见 第B.3.3.2节“如何重设根密码”。
要设置其他帐户,请参见 第6.2.8节“添加帐户,分配特权和删除帐户”。