该程序使您可以通过以下方式提高MySQL安装的安全性:
- 您可以为
root帐户设置密码。 - 您可以删除
root可从本地主机外部访问的帐户。 - 您可以删除匿名用户帐户。
- 您可以删除
test数据库(默认情况下,所有用户甚至匿名用户都可以访问该数据库)和特权,该特权允许任何人访问名称以开头的数据库test_。
mysql_secure_installation可帮助您实现类似于第2.10.4节“保护初始MySQL帐户”中所述的安全建议 。
正常用法是连接到本地MySQL服务器。调用 不带参数的mysql_secure_installation:
shell> mysql_secure_installation
当执行时,mysql_secure_installation 提示您确定要执行的动作。
该validate_password组件可用于密码强度检查。如果未安装该插件,则 mysql_secure_installation提示用户是否安装它。启用后,将使用该插件检查以后输入的所有密码。
大多数常用的MySQL客户端选项(例如 --host和) --port都可以在命令行和选项文件中使用。例如,要使用端口3307通过IPv6连接到本地服务器,请使用以下命令:
shell> mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation支持以下选项,可以在命令行或选项文件的[mysql_secure_installation]和 [client]组中指定这些选项。有关MySQL程序使用的选项文件的信息,请参见 第4.2.2.2节“使用选项文件”。
表4.8 mysql_secure_installation选项
| 选项名称 | 描述 | 介绍了 |
|---|---|---|
| –defaults-extra-file | 除常规选项文件外,还读取命名的选项文件 | |
| –defaults-file | 只读命名的选项文件 | |
| –defaults-group-suffix | 选项组后缀值 | |
| –help | 显示帮助信息并退出 | |
| –host | MySQL服务器所在的主机 | |
| –no-defaults | 不读取选项文件 | |
| –password | 接受但始终被忽略。每当调用mysql_secure_installation时,都会提示用户输入密码,无论 | |
| –port | 用于连接的TCP / IP端口号 | |
| –print-defaults | 打印默认选项 | |
| –protocol | 使用的传输协议 | |
| –socket | Unix套接字文件或Windows命名管道使用 | |
| –ssl-ca | 包含受信任的SSL证书颁发机构列表的文件 | |
| –ssl-capath | 包含受信任的SSL证书颁发机构证书文件的目录 | |
| –ssl-cert | 包含X.509证书的文件 | |
| –ssl-cipher | 连接加密的允许密码 | |
| –ssl-crl | 包含证书吊销列表的文件 | |
| –ssl-crlpath | 包含证书吊销列表文件的目录 | |
| –ssl-fips-mode | 是否在客户端启用FIPS模式 | |
| –ssl-key | 包含X.509密钥的文件 | |
| –tls-ciphersuites | 允许的TLSv1.3密码套件用于加密连接 | 8.0.16 |
| –tls-version | 允许的TLS协议进行加密连接 | |
| —use-default | 无需用户交互即可执行 | |
| –user | 连接服务器时使用的MySQL用户名 |
-
--help,-?显示帮助消息并退出。
-
--defaults-extra-file=*file_name*在全局选项文件之后但在用户选项文件之前(在Unix上)读取此选项文件。如果该文件不存在或无法访问,则发生错误。 *
file_name*如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
-
仅使用给定的选项文件。如果该文件不存在或无法访问,则发生错误。 *
file_name*如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
-
不仅阅读常规选项组,而且阅读具有常规名称和后缀的组
str。例如, mysql_secure_installation通常读取[client]和[mysql_secure_installation]组。如果--defaults-group-suffix=_other给出了该 选项,则 mysql_secure_installation也会读取[client_other]和[mysql_secure_installation_other]组。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
-
--host=*host_name*,-h *host_name*连接到给定主机上的MySQL服务器。
-
不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败,
--no-defaults则可以使用该选项 来防止读取它们。唯一的例外是,
.mylogin.cnf在所有情况下都会读取该文件(如果存在)。这样,即使--no-defaults使用密码,也可以通过比命令行更安全的方式指定密码 。(.mylogin.cnf由mysql_config_editor实用程序创建。请参见 第4.6.7节“ mysql_config_editor -MySQL配置实用程序”。)有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
-
--password=*password*,-p *password*接受但忽略此选项。无论是否使用此选项,mysql_secure_installation 总是提示用户输入密码。
-
--port=*port_num*,-P *port_num*对于TCP / IP连接,使用的端口号。
-
打印程序名称及其从选项文件中获得的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节“影响选项文件处理的命令行选项”。
-
--protocol={TCP|SOCKET|PIPE|MEMORY}用于连接到服务器的传输协议。当其他连接参数通常导致使用您想要的协议以外的协议时,此功能很有用。有关允许值的详细信息,请参见 第4.2.7节“连接传输协议”。
-
--socket=*path*,-S *path*对于与的连接
localhost,要使用的Unix套接字文件,或者在Windows上,要使用的命名管道的名称。在Windows上,仅当在
named_pipe启用了支持命名管道连接的系统变量的情况下启动服务器时,此选项才适用。另外,该连接必须是named_pipe_full_access_group系统变量指定的Windows组的成员 。 -
--ssl*以开头的选项
--ssl指定是否使用SSL连接到服务器,并指示在何处查找SSL密钥和证书。请参阅 加密连接的命令选项。 -
--ssl-fips-mode={OFF|ON|STRICT}控制是否在客户端上启用FIPS模式。该
--ssl-fips-mode选项与其他选项的不同之处在于,该 选项 不用于建立加密连接,而是影响允许的加密操作。请参见第6.8节“ FIPS支持”。--ssl-*xxx*这些
--ssl-fips-mode值是允许的:OFF:禁用FIPS模式。ON:启用FIPS模式。STRICT:启用“严格” FIPS模式。
注意
如果OpenSSL的FIPS对象模块不可用时,对于唯一的允许值
--ssl-fips-mode是OFF。在这种情况下,设置--ssl-fips-mode为ON或STRICT导致客户端在启动时发出警告并以非FIPS模式运行。 -
--tls-ciphersuites=*ciphersuite_list*使用TLSv1.3的加密连接的允许密码套件。该值是一个或多个以冒号分隔的密码套件名称的列表。可以为此选项命名的密码套件取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.3.2节“加密的连接TLS协议和密码”。
该选项是在MySQL 8.0.16中添加的。
-
加密连接允许的TLS协议。该值是一个或多个逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.3.2节“加密的连接TLS协议和密码”。
-
非交互执行。此选项可用于无人参与的安装操作。
-
--user=*user_name*,-u *user_name*用于连接到服务器的MySQL帐户的用户名。




