Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  mysql_secure_installation — Improve MySQL Installation Security

6.4.2 mysql_secure_安装 — 提高MySQL安装安全性

这个程序允许您通过以下方式提高MySQL安装的安全性:

  • 您可以为root帐户设置密码。

  • 您可以删除可从外部主机访问的root帐户。

  • 您可以删除匿名用户帐户。

  • 您可以删除默认情况下任何用户都可以访问的test数据库,以及允许任何人访问以test_开头命名的数据库的权限。

mysql_secure_安装 帮助您实施与Section 2.9.4, “Securing the Initial MySQL Account”中描述的安全建议类似。

正常使用是连接到本地MySQL服务器;调用mysql_secure_安装没有参数:

mysql_secure_installation

当执行时,mysql_secure_安装会提示您确定要执行哪些操作。

`validate_password` 组件可以用于密码强度检查。如果插件未安装,mysql_secure_installation 会提示用户是否安装它。之后输入的任何密码都将使用插件进行检查,如果已启用的话。

大多数常见的MySQL客户端选项,如--host--port,可以在命令行和选项文件中使用。例如,要连接到本地服务器并通过IPv6使用端口3307,可以使用以下命令:

mysql_secure_installation --host=::1 --port=3307

mysql_secure_installation 支持以下选项,可以在命令行或选项文件的`[mysql_secure_installation]`和`[client]`组中指定。关于MySQL程序使用的选项文件信息,请参阅第6.2.2.2节,“使用选项文件”

表6.9 mysql_secure_installation 选项

Option Name Description
--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密钥的文件
--ssl-mode 连接到服务器时期望的安全状态
--ssl-session-data 包含SSL会话数据的文件
--ssl-session-data-continue-on-failed-reuse 如果会话重用失败是否继续建立连接
--tls-ciphersuites 允许的TLSv1.3加密套件用于加密连接
--tls-sni-servername 由客户端提供的服务器名称
--tls-version 用于加密连接的允许TLS协议
--use-default 使用默认设置执行,无需用户交互
--user 连接到服务器时要使用的MySQL用户名

  • --help, -

    Command-Line Format --help

    显示帮助信息并退出。

  • --defaults-extra-file=file_name

    Command-Line Format --defaults-extra-file=file_name
    Type 文件名

    在全局选项文件之后但在用户选项文件之前(在Unix上)读取这个选项文件。如果指定的文件不存在或无法访问,会发生错误。如果file_name不是绝对路径名,它将相对于当前目录解释。

    对于此选项文件及其它选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --defaults-file=<file_name>

    Command-Line Format --defaults-file=file_name
    Type 文件名

    只使用给定的选项文件。如果文件不存在或无法访问,会发生错误。如果<file_name>不是绝对路径名,它将相对于当前目录解释。

    对于此和其他选项文件选项的更多信息,请参阅第6.2.2.3节,“影响选项文件处理的命令行选项”

  • --defaults-group-suffix=<str>

    Command-Line Format --defaults-group-suffix=str
    Type 字符串

    除了常规选项组外,还要阅读带有常规名称后缀的 str 组。例如,通常会读取 [client][mysql_secure_installation] 组。如果给出如下的选项 --defaults-group-suffix=_othermysql_secure_installation 也会读取 [client_other][mysql_secure_installation_other] 组。

    关于此类选项文件选项的更多信息,请参阅第6.2.2.3节,“命令行选项对选项文件处理的影响”

  • --host=主机名, -h 主机名

    Command-Line Format --host

    连接到MySQL服务器的给定主机上。

  • --no-defaults

    Command-Line Format --no-defaults

    不读取任何选项文件。如果程序启动失败,因为从一个选项文件中读取了未知选项,--no-defaults 可以用来防止它们被读取。

    除了在所有情况下都要读取的 .mylogin.cnf 文件之外,这个选项可以阻止其他任何文件的选项被读取。如果这个文件存在,即使使用了 --no-defaults,它也会被读取。这允许在不安全的环境中指定密码,而不是直接在命令行上输入。要创建 .mylogin.cnf 文件,可以使用 mysql_config_editor 工具。请参阅第 6.6.7 节,“mysql_config_editor — MySQL 配置编辑器”

    关于这个和其他影响选项文件处理的命令行选项的更多信息,请参阅第 6.2.2.3 节,“影响选项文件处理的命令行选项”

  • --password=密码, -p 密码

    Command-Line Format --password=密码
    Type 字符串
    Default Value [none]

    这项选项被接受但忽略。无论是否使用这一选项,mysql_ secure_installation 总是要求用户输入密码。

  • --port=端口号, -P 端口号

    Command-Line Format --port=端口号
    Type 数字
    Default Value 3306

    用于TCP/IP连接的端口号。

  • --print-defaults

    Command-Line Format --print-defaults

    打印程序名称及其来自选项文件的所有选项。

    有关此类别和其他影响选项文件处理的命令行选项的更多信息,请参阅第6.2.2.3节,“命令行选项影响选项文件处理”

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    Command-Line Format --protocol=类型
    Type 字符串
    Default Value [请参阅文本]
    Valid Values

    TCP

    SOCKET

    PIPE

    MEMORY

    用于连接到服务器的传输协议。它在其他连接参数通常导致使用不同于您想要的协议时非常有用。有关允许值的详细信息,请参阅第6.2.7节,“连接传输协议”

  • --socket=路径, -S 路径

    Command-Line Format --socket={文件名|管道名}
    Type 字符串

    对于连接到localhost,要使用的Unix套接字文件,或在Windows上,要使用的命名管道名称。

    在Windows上,此选项仅适用于服务器以支持命名管道连接而启动时。另外,连接必须是由named_pipe系统变量指定的Windows组成员,并且必须是由named_pipe_full_access_group系统变量指定的Windows组成员。

  • --ssl*

    --ssl 开头的选项指定是否使用加密连接服务器,并指示SSL密钥和证书的位置。请参阅命令选项:加密连接

  • --ssl-fips-mode={OFF|ON|STRICT}

    Command-Line Format --ssl-fips-mode={OFF|ON|STRICT}
    Deprecated
    Type 枚举值
    Default Value OFF
    Valid Values

    OFF

    ON

    STRICT

    控制是否在客户端启用FIPS模式。与其他以 --ssl- xxx 开头的选项不同,--ssl-fips-mode 不用于建立加密连接,而是影响哪些加密操作被允许。请参阅第8.8节,“FIPS支持”

    这些 --ssl-fips-mode 的值是允许的:

    • OFF:禁用FIPS模式。

    • ON:启用FIPS模式。

    • STRICT:启用“严格”FIPS模式。

    Note

    如果OpenSSL FIPS对象模块不可用,--ssl-fips-mode的唯一允许值为 OFF。在这种情况下,将--ssl-fips-mode设置为 ONSTRICT 将在启动时导致客户端产生一个警告,并以非FIPS模式运行。

    此选项已被弃用。预计将来版本的MySQL中将其移除。

  • --tls-ciphersuites=ciphersuite_list

    Command-Line Format --tls-ciphersuites=ciphersuite_list
    Type 字符串

    用于TLSv1.3加密连接的允许密码套件。值是一个由一个或多个冒号分隔的密码套件名称列表。可以为此选项命名的密码套件取决于MySQL编译时使用的SSL库。有关详细信息,请参阅第8.3.2节,“加密连接TLS协议和密码套件”

  • --tls-sni-servername=server_name

    Command-Line Format --tls-sni-servername=server_name
    Type 字符串

    当指定时,名称将通过 libmysqlclient C API 库的 MYSQL_OPT_TLS_SNI_SERVERNAME 选项传递给mysql_options()。服务器名称不区分大小写。要查看客户端为当前会话指定的服务器名称(如果有),请检查Tls_sni_server_name状态变量。

    Server Name Indication (SNI) 是 TLS 协议的一个扩展(OpenSSL 必须使用 TLS 扩展编译此选项才能工作)。MySQL 对 SNI 的实现仅限于客户端侧。

  • --tls-version=协议列表

    Command-Line Format --tls-version=协议列表
    Type 字符串
    Default Value

    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

    Command-Line Format --use-default
    Type 布尔值

    执行非交互式安装。这个选项可以用于无人操作的安装操作。

  • --user=用户名称, -u 用户名称

    Command-Line Format --user=user_name
    Type 字符串

    MySQL服务器连接时要使用的MySQL账户的用户名。