该程序使您可以通过以下方式提高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帐户的用户名。