该程序使您可以通过下列方式提高 MySQL 安装的安全性:
root您可以为账户 设置密码。
您可以删除可root从本地主机外部访问的帐户。
您可以删除匿名用户帐户。
您可以删除test数据库(默认情况下所有用户甚至匿名用户都可以访问该数据库),以及允许任何人访问名称以 开头的数据库的权限 test_。
mysql_secure_installation帮助您实施与第 2.9.4 节“保护初始 MySQL 帐户”中所述的安全建议类似的安全建议 。
正常用法是连接到本地 MySQL 服务器;调用 不带参数的mysql_secure_installation:
mysql_secure_installation
执行时,mysql_secure_installation 会提示您确定要执行哪些操作。
该validate_password组件可用于检查密码强度。如果未安装该插件, mysql_secure_installation会提示用户是否安装。如果启用了该插件,则稍后输入的任何密码都会使用该插件进行检查。
大多数常用的 MySQL 客户端选项(例如 --host和) --port都可以在命令行和选项文件中使用。例如,要使用端口 3307 通过 IPv6 连接到本地服务器,请使用以下命令:
mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation支持以下选项,这些选项可以在命令行中或在[mysql_secure_installation]和 [client]组中指定。有关 MySQL 程序使用的选项文件的信息,请参见 第 6.2.2.2 节“使用选项文件”。
表 6.9 mysql_secure_installation 选项
选项名称 描述
--defaults-额外文件 除了通常的选项文件外,还读取命名的选项文件
--默认文件 只读命名选项文件
--defaults-group-suffix 选项组后缀值
- 帮助 显示帮助信息并退出
- 主持人 MySQL 服务器所在的主机
--无默认值 不读取任何选项文件
- 密码 已接受但始终被忽略。每当调用 mysql_secure_installation 时,系统都会提示用户输入密码,无论
- 港口 连接的 TCP/IP 端口号
--打印默认值 打印默认选项
- 协议 要使用的传输协议
- 插座 要使用的 Unix 套接字文件或 Windows 命名管道
--ssl-ca 包含受信任 SSL 证书颁发机构列表的文件
–ssl-capath 包含受信任的 SSL 证书颁发机构证书文件的目录
--ssl-cert 包含 X.509 证书的文件
–ssl密码 允许的连接加密密码
--ssl-crl 包含证书吊销列表的文件
–ssl-crlpath 包含证书吊销列表文件的目录
–ssl-fips 模式 客户端是否启用FIPS模式
--ssl 密钥 包含 X.509 密钥的文件
--ssl 模式 连接到服务器所需的安全状态
–ssl-session 参数 包含 SSL 会话数据的文件
739 --ssl-session-data-on-failed-reuse 会话数据重用失败时继续 如果会话重用失败,是否建立连接
–tls密码套件 允许加密连接的 TLSv1.3 密码套件
–tls-sni 服务器名称 客户端提供的服务器名称
--tls 版本 加密连接允许的 TLS 协议
- 默认情况下使用 无需用户交互即可执行
- 用户 连接服务器时使用的 MySQL 用户名
--help, -?
命令行格式 --help
显示帮助信息并退出。
--defaults-extra-file=file_name
命令行格式 --defaults-extra-file=file_name
类型 文件名
在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果文件不存在或无法访问,则会发生错误。如果 file_name不是绝对路径名,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。
--defaults-file=file_name
命令行格式 --defaults-file=file_name
类型 文件名
仅使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。如果 file_name不是绝对路径名,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。
--defaults-group-suffix=str
命令行格式 --defaults-group-suffix=str
类型 细绳
不仅读取通常的选项组,还读取具有通常名称和后缀的组 str。例如, mysql_secure_installation通常读取[client]和 [mysql_secure_installation]组。如果将此选项指定为 --defaults-group-suffix=_other, mysql_secure_installation还会读取 [client_other]和 [mysql_secure_installation_other]组。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。
--host=host_name, -h host_name
命令行格式 --host
连接到给定主机上的 MySQL 服务器。
--no-defaults
命令行格式 --no-defaults
不读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败, --no-defaults 则可用于阻止读取这些选项。
例外情况是,如果文件存在,则在所有情况下都会读取它。这样,即使 使用 ,.mylogin.cnf 也可以以比在命令行上更安全的方式指定密码 。要创建,请使用mysql_config_editor实用程序。请参见 第 6.6.7 节“mysql_config_editor — MySQL 配置实用程序”。 --no-defaults.mylogin.cnf
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。
--password=password, -p password
命令行格式 --password=password
类型 细绳
默认值 [none]
此选项被接受但被忽略。无论是否使用此选项,mysql_secure_installation 始终会提示用户输入密码。
--port=port_num, -P port_num
命令行格式 --port=port_num
类型 数字
默认值 3306
对于 TCP/IP 连接,要使用的端口号。
--print-defaults
命令行格式 --print-defaults
打印程序名称和从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节“影响选项文件处理的命令行选项”。
--protocol={TCP|SOCKET|PIPE|MEMORY}
命令行格式 --protocol=type
类型 细绳
默认值 [see text]
有效值
TCP
SOCKET
PIPE
MEMORY
用于连接服务器的传输协议。当其他连接参数通常导致使用您不希望使用的协议时,此协议非常有用。有关允许值的详细信息,请参见第 6.2.7 节“连接传输协议”。
--socket=path, -S path
命令行格式 --socket={file_name|pipe_name}
类型 细绳
对于 的连接localhost,要使用的 Unix 套接字文件,或者在 Windows 上,要使用的命名管道的名称。
在 Windows 上,仅当服务器启动时启用了named_pipe 系统变量以支持命名管道连接时,此选项才适用。此外,连接必须是系统 named_pipe_full_access_group 变量指定的 Windows 组的成员。
--ssl*
以 开头的选项--ssl指定是否使用加密连接到服务器,并指示在哪里可以找到 SSL 密钥和证书。请参阅 加密连接的命令选项。
--ssl-fips-mode={OFF|ON|STRICT}
命令行格式 --ssl-fips-mode={OFF|ON|STRICT}
已弃用 是的
类型 枚举
默认值 OFF
有效值
OFF
ON
STRICT
控制是否在客户端启用 FIPS 模式。此 --ssl-fips-mode 选项与其他选项不同 ,它不用于建立加密连接,而是影响允许哪些加密操作。请参见第 8.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 模式运行。
此选项已弃用。预计它会在 MySQL 的未来版本中被删除。
--tls-ciphersuites=ciphersuite_list
命令行格式 --tls-ciphersuites=ciphersuite_list
类型 细绳
使用 TLSv1.3 的加密连接的允许密码套件。该值是一个或多个以冒号分隔的密码套件名称的列表。可以为此选项命名的密码套件取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见 第 8.3.2 节“加密连接 TLS 协议和密码”。
--tls-sni-servername=server_name
命令行格式 --tls-sni-servername=server_name
类型 细绳
指定后,将使用选项 将名称传递给 libmysqlclientC API 库 。服务器名称不区分大小写。要显示客户端为当前会话指定的服务器名称(如果有),请检查 状态变量。 MYSQL_OPT_TLS_SNI_SERVERNAMEmysql_options()Tls_sni_server_name
服务器名称指示 (SNI) 是 TLS 协议的扩展(OpenSSL 必须使用 TLS 扩展进行编译才能使用此选项)。MySQL 的 SNI 实现仅代表客户端。
--tls-version=protocol_list
命令行格式 --tls-version=protocol_list
类型 细绳
默认值
TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 或更高版本)
TLSv1,TLSv1.1,TLSv1.2(否则)
加密连接允许的 TLS 协议。该值是一个或多个逗号分隔的协议名称的列表。可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见 第 8.3.2 节“加密连接 TLS 协议和密码”。
--use-default
命令行格式 --use-default
类型 布尔值
非交互方式执行。此选项可用于无人值守的安装操作。
--user=user_name, -u user_name
命令行格式 --user=user_name
类型 细绳
用于连接服务器的 MySQL 帐户的用户名。