Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Server Command Options

7.1.7 服务器命令选项

当您启动 mysqld 服务器时,可以使用任何方法指定程序选项,如 第 6.2.2 节,“指定程序选项” 所述。最常见的方法是提供选项文件或命令行选项。但是,在大多数情况下,确保服务器每次运行时使用相同的选项是非常重要的。确保这一点的最好方法是将其列在选项文件中。请参阅 第 6.2.2.2 节,“使用选项文件”。该节还描述了选项文件的格式和语法。

mysqld[mysqld][server] 组中读取选项。mysqld_safe[mysqld][server][mysqld_safe][safe_mysqld] 组中读取选项。mysql.server[mysqld][mysql.server] 组中读取选项。

mysqld 接受许多命令选项。要查看简要摘要,请执行以下命令:

mysqld --help

要查看完整列表,请使用以下命令:

mysqld --verbose --help

列表中的某些项实际上是可以在服务器启动时设置的系统变量。这些变量可以在运行时使用 SHOW VARIABLES 语句显示。某些项显示在前面的 mysqld 命令中,但不在 SHOW VARIABLES 输出中;这是因为它们是选项而不是系统变量。

以下列表显示了一些最常见的服务器选项。其他选项在其他部分中描述:

某些选项控制缓冲区或缓存的大小。当服务器需要分配内部数据结构时,这些结构通常从总缓冲区中分配,所需的空间可能是平台相关的。这意味着当您将值分配给缓冲区大小的选项时,实际可用的空间可能与分配的值不同。在某些情况下,服务器可能会将值调整为更高。例如,如果您将值设置为 0,则服务器将其设置为 1024。

缓冲区大小、长度和堆栈大小的值以字节为单位,除非另有说明。

某些选项采用文件名值。除非另有说明,否则默认文件位置是数据目录,如果值是相对路径名。要明确指定位置,请使用绝对路径名。假设数据目录是 /var/mysql/data。如果文件值选项是相对路径名,则其位于 /var/mysql/data 下。如果值是绝对路径名,则其位置是由路径名指定的。

您也可以在服务器启动时使用变量名称作为选项来设置服务器系统变量。要将值分配给服务器系统变量,请使用形式为 --var_name=value 的选项。例如, --sort_buffer_size=384Msort_buffer_size 变量设置为 384MB。

当您将值分配给变量时,MySQL 可能会自动将值调整到给定的范围内,或者如果只有某些值是允许的,则将值调整到最近的允许值。

要限制在运行时使用 SET 语句设置系统变量的最大值,请在服务器启动时使用形式为 --maximum-var_name=value 的选项。

您可以使用 SET 语句在运行时更改大多数系统变量的值。请参阅 第 15.7.6.1 节,“SET 语法 for 变量赋值”

第 7.1.8 节,“服务器系统变量” 提供了所有变量的完整描述,以及在服务器启动和运行时设置它们的附加信息。有关更改系统变量的信息,请参阅 第 7.1.1 节,“配置服务器”

  • --help, -?

    Command-Line Format --help

    显示简短的帮助信息并退出。使用 --verbose--help 选项来查看完整的信息。

  • --admin-ssl, --skip-admin-ssl

    Command-Line Format --admin-ssl[={OFF|ON}]
    Deprecated
    Type 布尔值
    Default Value ON

    --admin-ssl 选项类似于 --ssl 选项,但它适用于管理连接接口,而不是主要连接接口。有关这些接口的信息,请参阅 第 7.1.12.1 节,“连接接口”

    --admin-ssl 选项指定服务器允许但不需要在管理接口上加密连接。这项选项默认启用。

    --admin-ssl 可以以否定形式指定为 --skip-admin-ssl 或同义词 (--admin-ssl=OFF, --disable-admin-ssl)。在这种情况下,该选项指定服务器 允许加密连接,无论 admin_tsl_xxxadmin_ssl_xxx 系统变量的设置如何。

    --admin-ssl 选项仅在服务器启动时对管理接口的加密连接支持产生影响。在运行时,它被忽略且不影响 ALTER INSTANCE RELOAD TLS 的操作。例如,您可以使用 --admin-ssl=OFF 启动管理接口以禁用加密连接,然后重新配置 TLS 并执行 ALTER INSTANCE RELOAD TLS FOR CHANNEL mysql_admin 以在运行时启用加密连接。

    关于配置连接加密支持的一般信息,请参阅第 8.3.1 节,“配置 MySQL 以使用加密连接”。该讨论是为主连接接口编写的,但参数名称对于管理连接接口也相似。考虑在服务器端设置至少admin_ssl_certadmin_ssl_key系统变量,以及在客户端设置--ssl-ca(或--ssl-capath)选项。有关管理接口的更多信息,请参阅管理接口支持加密连接

    因为加密连接支持默认启用,因此通常不需要指定--admin-ssl;该选项已弃用,并将在未来 MySQL 版本中删除。如果要禁用加密连接,可以不指定--admin-ssl,并将admin_tls_version系统变量设置为空值,以指示不支持 TLS 版本。例如,在服务器 my.cnf 文件中禁用加密连接的行:

    [mysqld]
    admin_tls_version=''
  • --allow-suspicious-udfs

    Command-Line Format --allow-suspicious-udfs[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    该选项控制是否可以加载只有 xxx 符号的可加载函数。默认情况下,该选项关闭,只允许加载至少有一个辅助符号的可加载函数;这防止了从共享对象文件中加载函数的尝试。请参阅 可加载函数安全预防措施

  • --ansi

    Command-Line Format --ansi

    使用标准(ANSI)SQL 语法而不是 MySQL 语法。对于服务器 SQL 模式的更精确控制,请使用 --sql-mode 选项。请参阅 第 1.6 节,“MySQL 标准符合性”第 7.1.11 节,“服务器 SQL 模式”

  • --basedir=dir_name, -b dir_name

    Command-Line Format --basedir=dir_name
    System Variable basedir
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名称
    Default Value MySQL 安装目录的父目录

    MySQL 安装目录的路径。此选项设置 basedir 系统变量。

    服务器可执行文件在启动时确定其完整路径名,并使用其所在目录的父目录作为默认 basedir 值。这使服务器能够在搜索服务器相关信息(例如包含错误消息的 share 目录)时使用该 basedir

  • --chroot=dir_name, -r dir_name

    Command-Line Format --chroot=dir_name
    Type 目录名称

    在启动期间使用 mysqld 服务器在封闭的环境中,使用 chroot() 系统调用。这是一个推荐的安全措施。使用这个选项会限制 LOAD DATASELECT ... INTO OUTFILE

  • --console

    Command-Line Format --console
    Platform Specific Windows

    (仅限 Windows) 将默认错误日志目标设置为控制台。这影响基于默认目标的日志 sink。见 第 7.4.2 节,“错误日志”mysqld 不会关闭控制台窗口,如果使用这个选项。

    --console 优先于 --log-error,如果同时给出这两个选项。

  • --core-file

    Command-Line Format --core-file

    使用这个选项时,如果 mysqld 死亡,不需要参数(或接受)。核心文件的名称和位置取决于系统。在 Linux 上,写入当前工作目录的核心文件 core.pid,其中 pid 代表服务器进程的进程 ID。在 macOS 上,写入 /cores 目录的核心文件 core.pid。在 Solaris 上,使用 coreadm 命令指定核心文件的写入位置和名称。

    对于某些系统,要获取核心文件,还需要指定 --core-file-size 选项到 mysqld_safe。见 第 6.3.2 节,“mysqld_safe — MySQL 服务器启动脚本”。在某些系统上,例如 Solaris,如果同时使用 --user 选项,可能不会获取核心文件。可能还有其他限制或限制。例如,可能需要在启动服务器之前执行 ulimit -c unlimited。请参阅系统文档。

    变量 innodb_buffer_pool_in_core_file 可以用于减少核心文件的大小,在支持它的操作系统上。更多信息,请参阅 第 17.8.3.7 节,“从核心文件中排除缓冲池页面”

  • --daemonize, -D

    Command-Line Format --daemonize[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    这个选项使服务器以传统的、分叉的守护进程方式运行,允许它与使用 systemd 进程控制的操作系统一起工作。更多信息,请参阅 第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”

    --daemonize--initialize--initialize-insecure 是互斥的。

    如果服务器使用 --daemonize 选项启动,并且不连接到 tty 设备,则在缺少明确的日志选项时,使用默认错误日志选项 --log-error="" 将错误输出定向到默认日志文件。

    -D--daemonize 的同义词。

  • --datadir=dir_name, -h dir_name

    Command-Line Format --datadir=dir_name
    System Variable 数据目录
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名称

    MySQL 服务器数据目录的路径。此选项设置 datadir 系统变量。请参阅该变量的描述。

  • --debug[=debug_options], -# [debug_options]

    Command-Line Format --debug[=debug_options]
    System Variable 调试
    Scope 全局、会话
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value (Unix) d:t:i:o,/tmp/mysqld.trace
    Default Value (Windows) d:t:i:O,\mysqld.trace

    如果 MySQL 配置了 -DWITH_DEBUG=1 CMake 选项,可以使用此选项来获取 mysqld 的跟踪文件。典型的 debug_options 字符串是 d:t:o,file_name。默认值是 d:t:i:o,/tmp/mysqld.trace 在 Unix 上和 d:t:i:O,\mysqld.trace 在 Windows 上。

    使用 -DWITH_DEBUG=1 配置 MySQL 以启用调试支持,启用 --debug="d,parser_debug" 选项时启动服务器。这将导致 Bison 解析器将 SQL 语句的解析器跟踪写入服务器的标准错误输出。通常,这个输出将写入错误日志。

    可以多次给出此选项。以 +- 开头的值将添加到或从前一个值中。例如,--debug=T --debug=+P 将值设置为 P:T

    有关更多信息,请参阅 第 7.9.4 节,“DBUG 包”

  • --debug-sync-timeout[=N]

    Command-Line Format --debug-sync-timeout[=#]
    Type 整数

    控制 Debug Sync 设施是否启用。使用 Debug Sync 需要 MySQL 配置了 -DWITH_DEBUG=ON CMake 选项(请参阅 第 2.8.7 节,“MySQL 源代码配置选项”);否则,此选项不可用。选项值是以秒为单位的超时时间。默认值为 0,禁用 Debug Sync。如果给出选项值,则超时时间将设置为该值;否则,默认超时时间为 300 秒。

    有关 Debug Sync 设施和同步点的使用,请参阅 MySQL Internals: 测试同步

  • --default-time-zone=timezone

    Command-Line Format --default-time-zone=name
    Type 字符串

    设置默认服务器时区。此选项设置全局 time_zone 系统变量。如果不给出此选项,默认时区将是系统时区(由 system_time_zone 系统变量的值给出)。

    变量 system_time_zonetime_zone 变量不同。虽然它们可能具有相同的值,但后一个变量用于初始化每个连接客户端的时区。请参阅 第 7.1.15 节,“MySQL 服务器时区支持”

  • --defaults-extra-file=文件名

    在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果文件不存在或不可访问,将发生错误。如果 文件名 不是绝对路径名,则相对于当前目录进行解释。这必须是命令行上的第一个选项,如果使用。

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

  • --defaults-file=文件名

    仅读取指定的选项文件。如果文件不存在或不可访问,将发生错误。如果 文件名 不是绝对路径名,则相对于当前目录进行解释。

    例外:即使使用 --defaults-filemysqld 仍然读取 mysqld-auto.cnf

    Note

    这必须是命令行上的第一个选项,如果使用,除非服务器以 --defaults-file--install(或 --install-manual) 选项启动,在这种情况下,--install(或 --install-manual) 必须首先。

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

  • --defaults-group-suffix=str

    不仅读取通常的选项组,还读取具有通常名称和 str 后缀的组。例如,mysqld 通常读取 [mysqld] 组。如果使用 --defaults-group-suffix=_othermysqld 也读取 [mysqld_other] 组。

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

  • --early-plugin-load=插件列表

    Command-Line Format --early-plugin-load=插件列表
    Type 字符串
    Default Value 空字符串

    此选项告诉服务器在加载强制内置插件和存储引擎初始化之前加载哪些插件。早期加载仅支持编译了 PLUGIN_OPT_ALLOW_EARLY 的插件。如果给出了多个 --early-plugin-load 选项,只有最后一个生效。

    选项值是一个以分号分隔的列表,包含 插件库名称=插件库 值。每个 插件库 是一个包含插件代码的库文件的名称,每个 名称 是要加载的插件的名称。如果插件库没有前缀插件名称,服务器将加载库中的所有插件。使用前缀插件名称,服务器将仅加载库中的指定插件。服务器在由 plugin_dir 系统变量命名的目录中查找插件库文件。

    例如,如果插件 myplug1myplug2 包含在插件库文件 myplug1.somyplug2.so 中,使用该选项执行早期插件加载:

    mysqld --early-plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"

    引号围绕参数值,因为否则一些命令解释器将分号 (;) 解释为特殊字符。(例如,Unix shells 将其视为命令终止符。)

    每个命名插件仅在单个 mysqld 调用中早期加载。重新启动后,插件不会早期加载,除非再次使用 --early-plugin-load

    如果服务器使用 --initialize--initialize-insecure 启动,插件指定的 --early-plugin-load 不会加载。

    如果服务器使用 --help 运行,插件指定的 --early-plugin-load 将加载但不初始化。这确保插件选项在帮助消息中显示。

    InnoDB 表空间加密依赖于 MySQL Keyring 进行加密密钥管理,并且必须在存储引擎初始化之前加载密钥环插件以便 InnoDB 恢复加密表。例如,管理员想要在启动时加载 keyring_file 插件,应该使用 --early-plugin-load 选项值(例如 Unix 和 Unix-like 系统上的 keyring_file.so 或 Windows 上的 keyring_file.dll)。

    有关 InnoDB 表空间加密的信息,请参阅 第 17.13 节,“InnoDB Data-at-Rest Encryption”。有关插件加载的一般信息,请参阅 第 7.6.1 节,“Installing and Uninstalling Plugins”

    Note

    对于 MySQL Keyring,该选项仅在密钥库管理使用密钥环插件时使用。如果密钥库管理使用密钥环组件而不是插件,请使用清单文件指定组件加载;请参阅 第 8.4.4.2 节,“Keyring Component Installation”

  • --exit-info[=flags], -T [flags]

    Command-Line Format --exit-info[=flags]
    Type 整数

    这是一个用于调试 mysqld 服务器的标志位掩码。除非您确切地知道它的作用,否则请不要使用该选项!

  • --external-locking

    Command-Line Format --external-locking[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    启用外部锁定(系统锁定),默认情况下禁用。如果您在系统上使用该选项,例如 Linux,lockd 不完全工作,mysqld 很容易死锁。

    要显式禁用外部锁定,请使用 --skip-external-locking

    外部锁定仅影响MyISAM表访问。有关更多信息,包括可以和不能使用的条件,请参阅第10.11.5节,“外部锁定”

  • --flush

    Command-Line Format --flush[={OFF|ON}]
    System Variable flush
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 布尔值
    Default Value OFF

    将所有更改同步到磁盘后,每个SQL语句。通常,MySQL在每个SQL语句后将所有更改写入磁盘,然后让操作系统处理磁盘同步。请参阅B.3.3.3节,“如果MySQL崩溃”

    Note

    如果指定--flush,则flush_time的值不重要,flush_time的更改对flush行为没有影响。

  • --gdb

    Command-Line Format --gdb[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    安装一个中断处理程序SIGINT(需要停止mysqld使用^C设置断点)并禁用堆栈跟踪和核心文件处理。请参阅第7.9.1.4节,“在gdb下调试mysqld”

    在Windows上,此选项还抑制了用于实现RESTART语句的分叉:分叉使一个进程充当监视器,另一个进程充当服务器。但是,分叉使确定要附加的服务器进程变得更加困难,因此启动服务器时使用--gdb抑制分叉。对于使用此选项启动的服务器,RESTART语句只是退出,不会重新启动。

    在非调试设置中,--no-monitor可以用于抑制监视进程的分叉。

  • --initialize, -I

    Command-Line Format --initialize[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    此选项用于初始化MySQL安装,创建数据目录并填充mysql系统模式中的表。有关更多信息,请参阅第2.9.1节,“初始化数据目录”

    此选项限制或与其他启动选项不兼容,例如--datadir--basedir等目录位置选项,可能需要--user选项。

    • 我们强烈建议,在使用--initialize初始化数据目录时,不要指定其他选项,除非是--datadir--basedir等目录位置选项,可能需要--user选项。其他选项可以在初始化完成后启动MySQL服务器时指定。

    • 当服务器使用 --initialize 启动时,一些功能不可用,这限制了任何文件中允许的语句,该文件由 init_file 系统变量命名。有关更多信息,请参阅该变量的描述。此外,disabled_storage_engines 系统变量无效。

    • 使用 --ndbcluster 选项时,忽略 --initialize

    • --initialize--bootstrap--daemonize 是互斥的。

    前面的列表项也适用于使用 --initialize-insecure 选项初始化服务器。

  • --initialize-insecure

    Command-Line Format --initialize-insecure[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    该选项用于使用 mysql 系统模式中的表初始化 MySQL 安装,创建数据目录并填充表。该选项隐含 --initialize,并且同样的限制和限制也适用;有关更多信息,请参阅该选项的描述和 第 2.9.1 节,“Initializing the Data Directory”

    Warning

    该选项创建了一个 MySQL root 用户,密码为空,这是不安全的。因此,不要在生产中使用它,而不设置密码。请参阅 Post-Initialization root Password Assignment,了解如何执行此操作。

  • --innodb-xxx

    设置 InnoDB 存储引擎的选项。InnoDB 选项列在 第 17.14 节,“InnoDB Startup Options and System Variables”

  • --install [service_name]

    Command-Line Format --install [service_name]
    Platform Specific Windows

    (仅 Windows) 将服务器安装为 Windows 服务,该服务在 Windows 启动时自动启动。默认服务名称为 MySQL,如果没有提供 service_name 值。有关更多信息,请参阅 第 2.3.3.8 节,“Starting MySQL as a Windows Service”

    Note

    如果服务器使用 --defaults-file--install 选项启动,--install 必须首先出现。

  • --install-manual [service_name]

    Command-Line Format --install-manual [service_name]
    Platform Specific Windows

    (仅 Windows) 将服务器安装为 Windows 服务,该服务必须手动启动,不会在 Windows 启动时自动启动。默认服务名称为 MySQL,如果没有提供 service_name 值。有关更多信息,请参阅 第 2.3.3.8 节,“Starting MySQL as a Windows Service”

    Note

    如果服务器使用 --defaults-file--install-manual 选项启动,--install-manual 必须首先出现。

  • --语言=语言名称, -L 语言名称

    Command-Line Format --语言=name
    Deprecated 是; 使用 lc-messages-dir 代替
    System Variable 语言
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名称
    Default Value /usr/local/mysql/share/mysql/english/

    用于错误消息的语言。 语言名称 可以作为语言名称或安装语言文件的目录的完整路径名。见 第 12.12 节,“设置错误消息语言”

    --lc-messages-dir--lc-messages 应该用于代替 --语言,该选项已弃用(并作为 --lc-messages-dir 的同义词)。您应该期望在未来 MySQL 版本中删除 --语言 选项。

  • --大页面

    Command-Line Format --大页面[={OFF|ON}]
    System Variable 大页面
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Platform Specific Linux
    Type 布尔值
    Default Value OFF

    一些硬件/操作系统架构支持大于默认(通常为 4KB)的内存页面。实际实现取决于底层硬件和操作系统。大量内存访问的应用程序可能通过减少转换后备缓冲区(TLB)miss 来获得性能改进。

    MySQL 支持 Linux 实现的大页面支持(在 Linux 中称为 HugeTLB)。见 第 10.12.3.3 节,“启用大页面支持”。对于 Solaris 的大页面支持,请参阅 --超大页面 选项的描述。

    --大页面 默认情况下禁用。

  • --lc-messages=locale_name

    Command-Line Format --lc-messages=name
    System Variable lc_messages
    Scope 全局、会话
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value en_US

    用于错误消息的语言环境。默认为 en_US。服务器将参数转换为语言名称,并将其与 --lc-messages-dir 的值组合,以生成错误消息文件的位置。见 第 12.12 节,“设置错误消息语言”

  • --lc-messages-dir=dir_name

    Command-Line Format --lc-messages-dir=dir_name
    System Variable lc_messages_dir
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 目录名称

    错误消息文件所在的目录。服务器使用该值与 --lc-messages 的值组合,以生成错误消息文件的位置。见 第 12.12 节,“设置错误消息语言”

  • --本地服务

    Command-Line Format --本地服务

    (仅限Windows) 在服务名称后跟随的 --local-service 选项会导致服务器使用具有有限系统权限的 LocalService Windows 帐户运行。如果同时提供了 --defaults-file--local-service,它们可以以任何顺序出现。请参阅 第 2.3.3.8 节,“以 Windows 服务形式启动 MySQL”

  • --log-error[=file_name]

    Command-Line Format --log-error[=file_name]
    System Variable log_error
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 文件名

    将默认错误日志目标设置为指定的文件。这会影响基于默认目标的日志接收器的输出目标。请参阅 第 7.4.2 节,“错误日志”

    如果选项未指定文件名,默认错误日志目标在 Unix 和 Unix-like 系统中是一个名为 host_name.err 的文件,位于数据目录中。在 Windows 中,默认目标是相同的,除非指定了 --pid-file 选项。在那种情况下,文件名是 PID 文件基名加上 .err 后缀,位于数据目录中。

    如果选项指定了文件名,默认目标是该文件(如果名称没有后缀,则添加 .err 后缀),位于数据目录中,除非指定了绝对路径名以指定不同的位置。

    如果无法将错误日志输出重定向到错误日志文件,将发生错误并且启动失败。

    在 Windows 中,--console 选项优先于 --log-error 选项,如果同时提供了这两个选项。在这种情况下,默认错误日志目标是控制台,而不是文件。

  • --log-isam[=file_name]

    Command-Line Format --log-isam[=file_name]
    Type 文件名

    将所有 MyISAM 更改日志到该文件中(仅用于调试 MyISAM)。

  • --log-raw

    Command-Line Format --log-raw[={OFF|ON}]
    System Variable log_raw
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 布尔值
    Default Value OFF

    在某些语句中,密码将被服务器重写,以便不以明文形式出现在普通查询日志、慢查询日志和二进制日志中。可以使用 --log-raw 选项来禁止密码重写,以便在普通查询日志中看到语句的原始文本。但是,这个选项不建议用于生产环境,因为安全原因。

    如果安装了查询重写插件,--log-raw 选项会影响语句日志记录,如下所示:

    • 不使用 --log-raw,服务器将日志查询重写插件返回的语句。

    • 使用 --log-raw,服务器将日志原始语句。

    更多信息,请参阅 第 8.1.2.3 节,“密码和日志记录”

  • --log-short-format

    Command-Line Format --log-short-format[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    如果激活了慢查询日志,将日志少量信息。

  • --log-tc=file_name

    Command-Line Format --log-tc=file_name
    Type 文件名
    Default Value tc.log

    内存映射事务协调器日志文件的名称(对于禁用二进制日志时影响多个存储引擎的XA事务)。默认名称是 tc.log。如果没有指定完整的路径名,则文件将在数据目录下创建。此选项未使用。

  • --log-tc-size=size

    Command-Line Format --log-tc-size=#
    Type 整数
    Default Value 6 * 页面大小
    Minimum Value 6 * 页面大小
    Maximum Value (64-bit platforms) 18446744073709551615
    Maximum Value (32-bit platforms) 4294967295

    内存映射事务协调器日志的大小(以字节为单位)。默认值和最小值是页面大小的6倍,值必须是页面大小的倍数。

  • --memlock

    Command-Line Format --memlock[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    锁定 mysqld 进程在内存中。这可能有助于解决操作系统引起的 mysqld 交换到磁盘的问题。

    --memlock 在支持 mlockall() 系统调用的系统上有效;这包括 Solaris、使用 2.4 或更高版本内核的 Linux 发行版以及可能的其他 Unix 系统。在 Linux 系统上,您可以通过检查 mman.h 文件中是否定义了 mlockall() 来确定是否支持该选项,例如:

    $> grep mlockall /usr/include/sys/mman.h

    如果 mlockall() 受支持,您应该在上述命令的输出中看到类似以下的内容:

    extern int mlockall (int __flags) __THROW;
    Important

    使用该选项可能需要以 root 用户身份运行服务器,这通常不是一个好主意。请参阅 第 8.1.5 节,“如何以普通用户身份运行 MySQL”

    在 Linux 和可能的其他系统上,您可以通过更改 limits.conf 文件来避免以 root 用户身份运行服务器的需要。请参阅 第 10.12.3.3 节,“启用大页支持” 中关于 memlock 限制的注释。

    您不能在不支持 mlockall() 系统调用的系统上使用该选项;如果您这样做,mysqld 很可能会在启动时退出。

  • --myisam-block-size=N

    Command-Line Format --myisam-block-size=#
    Type 整数
    Default Value 1024
    Minimum Value 1024
    Maximum Value 16384

    用于 MyISAM 索引页的块大小。

  • --no-defaults

    不读取任何选项文件。如果程序启动失败是由于从选项文件中读取未知选项,--no-defaults 可以用于防止它们被读取。这必须是命令行上的第一个选项。

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

  • --no-dd-upgrade

    Command-Line Format --no-dd-upgrade[={OFF|ON}]
    Deprecated
    Type 布尔值
    Default Value OFF
    Note

    该选项已弃用。请使用 --upgrade 代替。

    防止在 MySQL 服务器启动过程中自动升级数据字典表。在将现有安装升级到新版本 MySQL 时,可能需要使用该选项,以避免升级数据字典表的自动升级。

    --no-dd-upgrade被指定时,如果服务器发现其期望的数据字典版本与数据字典本身存储的版本不同,启动将失败,错误信息将表明数据字典升级被禁止:

    [ERROR] [MY-011091] [Server] Data dictionary upgrade prohibited by the
    command line option '--no_dd_upgrade'.
    [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

    在正常启动期间,服务器将其数据字典版本与数据字典本身存储的版本进行比较,以确定是否需要升级数据字典表定义。如果升级是必要的并且支持升级,服务器将创建具有更新定义的数据字典表,复制持久元数据到新表中,原子地替换旧表,并重新初始化数据字典。如果升级不是必要的,启动将继续不更新数据字典表。

  • --no-monitor

    Command-Line Format --no-monitor[={OFF|ON}]
    Platform Specific Windows
    Type 布尔值
    Default Value OFF

    (仅限Windows)。该选项禁止用于实现RESTART语句的分叉:分叉使一个进程可以作为另一个进程的监视器。对于使用该选项启动的服务器,RESTART将简单地退出,不会重新启动。

  • --performance-schema-xxx

    配置性能架构选项。有关详细信息,请参阅第29.14节,“性能架构命令选项”

  • --plugin-load=plugin_list

    Command-Line Format --plugin-load=plugin_list
    Type 字符串

    该选项告诉服务器在启动时加载指定的插件。如果提供了多个--plugin-load选项,只有最后一个生效。可以使用--plugin-load-add选项指定其他要加载的插件。

    选项值是一个以分号分隔的插件库文件名和插件名称列表。每个plugin_library是包含插件代码的库文件名,每个name是要加载的插件名称。如果插件库文件名没有前缀插件名称,服务器将加载库文件中的所有插件。使用前缀插件名称,服务器将仅加载库文件中的指定插件。服务器在plugin_dir系统变量指定的目录中查找插件库文件。

    例如,如果插件名为myplug1myplug2,并且包含在插件库文件myplug1.somyplug2.so中,可以使用以下选项进行早期插件加载:

    mysqld --plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"

    引号括住参数值,因为一些命令解释器将分号(;)视为特殊字符。(例如,Unix shell将其视为命令终止符。)

    每个命名插件仅在单个mysqld调用中加载。重新启动后,插件不会加载,除非再次使用--plugin-load。这与INSTALL PLUGIN不同,后者将插件添加到mysql.plugins系统表中,以便在每次正常服务器启动时加载插件。

    在正常启动序列中,服务器通过读取mysql.plugins系统表来确定要加载的插件。如果服务器使用--skip-grant-tables选项启动,注册在mysql.plugins表中的插件将不会加载且不可用。--plugin-load使插件可以在--skip-grant-tables时加载。 --plugin-load还使插件可以在启动时加载,而不是在运行时加载。

    该选项不设置对应的系统变量。 SHOW PLUGINS 提供了关于加载的插件的信息。 更详细的信息可以在信息模式 PLUGINS 表中找到。 见 第 7.6.2 节,“获取服务器插件信息”

    关于插件加载的更多信息,请参阅 第 7.6.1 节,“安装和卸载插件”

  • --plugin-load-add=plugin_list

    Command-Line Format --plugin-load-add=plugin_list
    Type 字符串

    该选项补充了 --plugin-load 选项。 --plugin-load-add 将插件或插件添加到要在启动时加载的插件集中。 参数格式与 --plugin-load 相同。 --plugin-load-add 可以用来避免指定一个长的插件集作为单个长的 --plugin-load 参数。

    --plugin-load-add 可以在没有 --plugin-load 的情况下使用,但任何出现在 --plugin-load 之前的 --plugin-load-add 都没有效果,因为 --plugin-load 重置了要加载的插件集。换言之,这些选项:

    --plugin-load=x --plugin-load-add=y

    等同于这个选项:

    --plugin-load="x;y"

    但这些选项:

    --plugin-load-add=y --plugin-load=x

    等同于这个选项:

    --plugin-load=x

    该选项不设置对应的系统变量。 SHOW PLUGINS 提供了关于加载的插件的信息。 更详细的信息可以在信息模式 PLUGINS 表中找到。 见 第 7.6.2 节,“获取服务器插件信息”

    关于插件加载的更多信息,请参阅 第 7.6.1 节,“安装和卸载插件”

  • --plugin-xxx

    指定了一个服务器插件的选项。 例如,许多存储引擎可以作为插件构建,并且对于这些引擎,可以使用 --plugin 前缀指定选项。因此,--innodb-file-per-table 选项对于 InnoDB 可以指定为 --plugin-innodb-file-per-table

    对于布尔选项,可以启用或禁用,--skip 前缀和其他替代格式也支持(见 第 6.2.2.4 节,“程序选项修饰符”)。例如,--skip-plugin-innodb-file-per-table 禁用 innodb-file-per-table

    --plugin 前缀的理由是,它使插件选项可以在存在名称冲突时无歧义地指定。如果插件作者命名一个插件 sql 并实现一个 mode 选项,选项名称可能是 --sql-mode,这将与同名的内置选项冲突。在这种情况下,对冲突名称的引用将优先考虑内置选项。为了避免歧义,用户可以将插件选项指定为 --plugin-sql-mode。建议使用 --plugin 前缀来避免任何歧义。

  • --port=port_num, -P port_num

    Command-Line Format --port=port_num
    System Variable port
    Scope Global
    Dynamic
    SET_VAR Hint Applies
    Type 整数
    Default Value 3306
    Minimum Value 0
    Maximum Value 65535

    监听 TCP/IP 连接的端口号。在 Unix 和 Unix-like 系统上,端口号必须是 1024 或更高,除非服务器由 root 操作系统用户启动。将此选项设置为 0 将使用默认值。

  • --port-open-timeout=num

    Command-Line Format --port-open-timeout=#
    Type 整数
    Default Value 0

    在某些系统上,当服务器停止时,TCP/IP 端口可能不会立即可用。如果服务器快速重新启动,其尝试重新打开端口的尝试可能会失败。此选项指定服务器等待 TCP/IP 端口变为可用状态的秒数,如果无法打开端口。默认情况下,不等待。

  • --print-defaults

    打印程序名称和从选项文件获取的所有选项。密码值将被屏蔽。此选项必须是命令行上的第一个选项,除非它紧跟在 --defaults-file--defaults-extra-file 之后。

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

  • --remove [service_name]

    Command-Line Format --remove [service_name]
    Platform Specific Windows

    (仅限 Windows) 删除 MySQL Windows 服务。如果未指定 service_name 值,默认服务名称为 MySQL。有关更多信息,请参阅 第 2.3.3.8 节,“以 Windows 服务形式启动 MySQL”

  • --safe-user-create

    Command-Line Format --safe-user-create[={OFF|ON}]
    Deprecated
    Type 布尔值
    Default Value OFF

    如果启用此选项,用户不能使用 GRANT 语句创建新的 MySQL 用户,除非用户拥有 INSERT 权限对 mysql.user 系统表或表中的任何列。如果您想让用户拥有创建新用户的能力,该用户拥有授予权限,您应该授予用户以下权限:

    GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';

    这确保用户不能直接更改任何权限列,而是使用 GRANT 语句授予其他用户权限。

  • --skip-grant-tables

    Command-Line Format --skip-grant-tables[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    该选项影响服务器启动序列:

  • --skip-new

    Command-Line Format --skip-new
    Deprecated

    该选项禁用(曾经被认为是)新的、可能不安全的行为。它导致以下设置:delay_key_write=OFFconcurrent_insert=NEVERautomatic_sp_privileges=OFF。它还使 OPTIMIZE TABLE 映射到 ALTER TABLE,用于不支持 OPTIMIZE TABLE 的存储引擎。

    该选项自 MySQL 8.2.0 起弃用,并将在未来版本中删除。

  • --skip-show-database

    Command-Line Format --skip-show-database
    System Variable 跳过显示数据库
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 布尔值
    Default Value OFF

    该选项设置了 skip_show_database 系统变量,该变量控制谁可以使用 SHOW DATABASES 语句。见 第 7.1.8 节,“服务器系统变量”

  • --skip-stack-trace

    Command-Line Format --skip-stack-trace

    不要写入堆栈跟踪。这选项在您在调试器下运行 mysqld 时非常有用。在某些系统上,您也必须使用该选项来获取核心文件。见 第 7.9 节,“调试 MySQL”

  • --slow-start-timeout=timeout

    Command-Line Format --slow-start-timeout=#
    Type 整数
    Default Value 15000

    该选项控制 Windows 服务控制管理器的服务启动超时。该值是服务控制管理器在启动期间等待的最大毫秒数。如果 MySQL 服务启动太慢,您可能需要增加该值。值为 0 表示没有超时。

  • --socket=path

    Command-Line Format --socket={文件名|管道名}
    System Variable socket
    Scope 全局
    Dynamic
    SET_VAR Hint Applies
    Type 字符串
    Default Value (Windows) MySQL
    Default Value (Other) /tmp/mysql.sock

    在 Unix 上,该选项指定了用于监听本地连接的 Unix 套接字文件。默认值是 /tmp/mysql.sock。如果给定该选项,服务器将在数据目录中创建文件,除非指定了绝对路径名以指定不同的目录。在 Windows 上,该选项指定了用于监听本地连接的命名管道的名称。默认值是 MySQL(不区分大小写)。

  • --sql-mode=value[,value[,value...]]

    Command-Line Format --sql-mode=name
    System Variable sql_mode
    Scope 全局、会话
    Dynamic
    SET_VAR Hint Applies
    Type 集合
    Default Value ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
    Valid Values

    ALLOW_INVALID_DATES

    ANSI_QUOTES

    ERROR_FOR_DIVISION_BY_ZERO

    HIGH_NOT_PRECEDENCE

    IGNORE_SPACE

    NO_AUTO_VALUE_ON_ZERO

    NO_BACKSLASH_ESCAPES

    NO_DIR_IN_CREATE

    NO_ENGINE_SUBSTITUTION

    NO_UNSIGNED_SUBTRACTION

    NO_ZERO_DATE

    NO_ZERO_IN_DATE

    ONLY_FULL_GROUP_BY

    PAD_CHAR_TO_FULL_LENGTH

    PIPES_AS_CONCAT

    REAL_AS_FLOAT

    STRICT_ALL_TABLES

    STRICT_TRANS_TABLES

    TIME_TRUNCATE_FRACTIONAL

    设置 SQL 模式。参见 第 7.1.11 节,“服务器 SQL 模式”

    Note

    MySQL 安装程序可能会在安装过程中配置 SQL 模式。

    如果 SQL 模式不同于默认值或您的期望,请检查服务器在启动时读取的选项文件中的设置。

  • --ssl, --skip-ssl

    Command-Line Format --ssl[={OFF|ON}]
    Deprecated
    Disabled by skip-ssl
    Type 布尔值
    Default Value ON

    选项 --ssl 指定服务器允许但不需要在主连接接口上进行加密连接。此选项默认启用。

    类似选项 --admin-ssl 类似于 --ssl, 但它应用于管理连接接口而不是主连接接口。有关这些接口的信息,请参见 第 7.1.12.1 节,“连接接口”

    --ssl 可以以否定形式指定为 --skip-ssl 或同义词 (--ssl=OFF, --disable-ssl)。在这种情况下,选项指定服务器 允许加密连接,无论 tls_xxxssl_xxx 系统变量的设置如何。

    选项 --ssl 只在服务器启动时对服务器是否支持加密连接产生影响。在运行时,它被忽略且没有效果 ALTER INSTANCE RELOAD TLS。例如,您可以使用 --ssl=OFF 启动服务器禁用加密连接,然后重新配置 TLS 并执行 ALTER INSTANCE RELOAD TLS 在运行时启用加密连接。

    有关配置服务器是否允许客户端使用 SSL 连接和指示 SSL 密钥和证书的位置的更多信息,请参见 第 8.3.1 节,“配置 MySQL 使用加密连接”,该节还描述了服务器的证书和密钥文件自动生成和自动发现功能。请考虑在服务器端设置至少 ssl_certssl_key 系统变量,并在客户端设置 --ssl-ca(或 --ssl-capath)选项。

    因为加密连接支持默认启用,因此通常不需要指定 --ssl,该选项已弃用且将在未来 MySQL 版本中删除。如果需要禁用加密连接,可以不指定 --ssl。将 tls_version 系统变量设置为空值,以指示不支持任何 TLS 版本。例如,在服务器 my.cnf 文件中的以下行禁用加密连接:

    [mysqld]
    tls_version=''
  • --standalone

    Command-Line Format --standalone
    Platform Specific Windows

    仅在 Windows 上可用;指示 MySQL 服务器不作为服务运行。

  • --super-large-pages

    Command-Line Format --super-large-pages[={OFF|ON}]
    Platform Specific Solaris
    Type 布尔值
    Default Value OFF

    在 MySQL 中,使用大页的标准用法尝试使用支持的最大大小,高达 4MB。在 Solaris 下,有一个“超大页”功能,允许使用高达 256MB 的页。这项功能适用于最近的 SPARC 平台。可以使用 --super-large-pages--skip-super-large-pages 选项启用或禁用它。

  • --symbolic-links, --skip-symbolic-links

    Command-Line Format --symbolic-links[={OFF|ON}]
    Deprecated
    Type 布尔值
    Default Value OFF

    启用或禁用符号链接支持。在 Unix 上,启用符号链接意味着可以使用 MyISAM 索引文件或数据文件链接到另一个目录,使用 INDEX DIRECTORYDATA DIRECTORY 选项的 CREATE TABLE 语句。如果删除或重命名表,符号链接所指向的文件也将被删除或重命名。见 第 10.12.2.2 节,“使用 Unix 上的 MyISAM 表的符号链接”

    Note

    符号链接支持,连同控制它的 --symbolic-links 选项,已经弃用;您应该期望它在未来版本的 MySQL 中被删除。此外,该选项默认情况下是禁用的。相关的 have_symlink 系统变量也弃用;期望它在未来版本的 MySQL 中被删除。

    在 Windows 上,该选项无意义。

  • --sysdate-is-now

    Command-Line Format --sysdate-is-now[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    SYSDATE() 默认情况下返回执行时的时间,而不是语句开始执行的时间。这与 NOW() 的行为不同。该选项使 SYSDATE() 成为 NOW() 的同义词。有关二进制日志记录和复制的影响,请参见 SYSDATE()第 14.7 节,“日期和时间函数”SET TIMESTAMP第 7.1.8 节,“服务器系统变量” 中的描述。

  • --tc-heuristic-recover={COMMIT|ROLLBACK}

    Command-Line Format --tc-heuristic-recover=name
    Type 枚举
    Default Value OFF
    Valid Values

    OFF

    COMMIT

    ROLLBACK

    在手动启发恢复中使用的决定。

    如果指定了 --tc-heuristic-recover 选项,无论手动启发恢复是否成功,服务器都会退出。

    在具有多个存储引擎且支持两阶段提交的系统上,ROLLBACK 选项是不安全的,并且会导致恢复停止,出现以下错误:

    [ERROR] --tc-heuristic-recover rollback
    strategy is not safe on systems with more than one 2-phase-commit-capable
    storage engine. Aborting crash recovery.
  • --transaction-isolation=level

    Command-Line Format --transaction-isolation=name
    System Variable transaction_isolation
    Scope 全局、会话
    Dynamic
    SET_VAR Hint Applies
    Type 枚举
    Default Value REPEATABLE-READ
    Valid Values

    未提交读取

    已提交读取

    可重复读取

    串行化

    设置默认事务隔离级别。级别值可以是 未提交读取已提交读取可重复读取串行化。见 第 15.3.7 节,“SET TRANSACTION 语句”

    默认事务隔离级别也可以在运行时使用 SET TRANSACTION 语句或设置 transaction_isolation 系统变量来设置。

  • --transaction-read-only

    Command-Line Format --transaction-read-only[={OFF|ON}]
    System Variable transaction_read_only
    Scope Global, Session
    Dynamic
    SET_VAR Hint Applies
    Type 布尔值
    Default Value OFF

    设置默认事务访问模式。默认情况下,读取模式是禁用的,因此模式是读写。

    要在运行时设置默认事务访问模式,请使用 SET TRANSACTION 语句或设置 transaction_read_only 系统变量。见 第 15.3.7 节,“SET TRANSACTION 语句”

  • --tmpdir=dir_name, -t dir_name

    Command-Line Format --tmpdir=dir_name
    System Variable tmpdir
    Scope Global
    Dynamic
    SET_VAR Hint Applies
    Type 目录名称

    用于创建临时文件的目录路径。如果您的默认 /tmp 目录位于一个太小的分区中无法容纳临时表,这个选项可能很有用。这个选项接受多个路径,以圆环方式使用。路径之间用冒号 (:) 分隔在 Unix 上,分号 (;) 分隔在 Windows 上。

    --tmpdir 可以是一个非永久位置,例如基于内存的文件系统上的目录或在服务器主机重启时清除的目录。如果 MySQL 服务器作为副本,并且您使用非永久位置 для --tmpdir,请考虑使用副本的不同临时目录 replica_load_tmpdir 系统变量。对于副本,用于复制 LOAD DATA 语句的临时文件存储在这个目录中,因此使用永久位置可以在机器重启后继续复制,尽管复制现在可以在重启后继续,如果临时文件已被删除。

    有关临时文件存储位置的更多信息,请见 B.3.3.5 节,“MySQL 存储临时文件的位置”

  • --upgrade=value

    Command-Line Format --upgrade=value
    Type 枚举
    Default Value AUTO
    Valid Values

    AUTO

    NONE

    MINIMAL

    FORCE

    该选项控制服务器在启动时是否并如何执行自动升级。自动升级涉及两个步骤:

    • 步骤 1:数据字典升级。

      这一步升级:

      • 数据字典表在 mysql 模式中。如果实际数据字典版本低于当前期望版本,服务器将升级数据字典。如果不能或被阻止这样做,服务器无法运行。

      • 性能模式和 INFORMATION_SCHEMA

    • 步骤 2:服务器升级。

      该步骤包括所有其他升级任务。如果现有的安装数据具有比服务器期望的较低的 MySQL 版本,它必须升级:

      • 系统表在 mysql 模式中(剩余的非数据字典表)。

      • sys 模式。

      • 用户模式。

    有关升级步骤 1 和 2 的详细信息,请参阅 第 3.4 节,“MySQL 升级过程升级什么”

    这些 --upgrade 选项值是允许的:

    • AUTO

      服务器执行自动升级任何发现的过时项目(步骤 1 和 2)。这是默认操作,如果 --upgrade 未明确指定。

    • NONE

      服务器在启动过程中不执行自动升级步骤(跳过步骤 1 和 2)。因为这个选项值阻止了数据字典升级,如果数据字典被发现过时,服务器将退出并显示错误:

      [ERROR] [MY-013381] [Server] Server shutting down because upgrade is
      required, yet prohibited by the command line option '--upgrade=NONE'.
      [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
      [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
    • MINIMAL

      服务器升级数据字典、性能模式和 INFORMATION_SCHEMA,如果必要(步骤 1)。请注意,在使用这个选项后升级,组复制无法启动,因为系统表在复制内部依赖的表没有更新,其他领域也可能出现减少的功能。

    • FORCE

      服务器升级数据字典、性能模式和 INFORMATION_SCHEMA,如果必要(步骤 1)。此外,服务器强制升级所有其他项目(步骤 2)。预计服务器启动时间较长,因为服务器检查所有模式中的所有对象。

      FORCE 对于强制执行步骤 2 操作非常有用,如果服务器认为它们不是必要的。例如,您可能认为系统表缺失或损坏,并想强制修复。

    以下表格总结了服务器对每个选项值的操作。

    Option Value Server Performs Step 1? Server Performs Step 2?
    AUTO 如果必要 如果必要
    NONE
    MINIMAL 如果必要
    FORCE 如果必要
  • --user={user_name|user_id}, -u {user_name|user_id}

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

    以用户 user_name 或数字用户 ID user_id 运行 mysqld 服务器。(在这个上下文中,“用户”指的是系统登录帐户,而不是 MySQL 用户列表中的用户。)

    这个选项是 强制 的,当启动 mysqld 作为 root 时。服务器在启动序列中更改其用户 ID,导致它以该特定用户身份运行,而不是以 root 身份运行。请参阅 第 8.1.1 节,“安全指南”

    为了避免可能的安全漏洞,其中用户在 --user=root 选项添加到 my.cnf 文件中(从而导致服务器以 root 用户身份运行), mysqld 只使用第一个 --user 选项,并在发现多个 --user 选项时产生警告。 /etc/my.cnf$MYSQL_HOME/my.cnf 中的选项在命令行选项之前处理,因此建议您在 /etc/my.cnf 中添加一个 --user 选项,并指定一个不是 root 的值。 /etc/my.cnf 中的选项在任何其他 --user 选项之前找到,这确保服务器以其他用户身份运行,而不是 root,并且如果找到任何其他 --user 选项时产生警告。

  • --validate-config

    Command-Line Format --validate-config[={OFF|ON}]
    Type 布尔值
    Default Value OFF

    验证服务器启动配置。如果没有发现错误,服务器将以退出代码 0 终止。如果发现错误,服务器将显示诊断消息并以退出代码 1 终止。警告和信息消息也可能被显示,取决于 log_error_verbosity 值,但不会导致立即验证终止或退出代码 1。有关更多信息,请参阅 第 7.1.3 节,“服务器配置验证”

  • --validate-user-plugins[={OFF|ON}]

    Command-Line Format --validate-user-plugins[={OFF|ON}]
    Type 布尔值
    Default Value ON

    如果启用此选项(默认情况),服务器将检查每个用户帐户,并在发现使帐户不可用的条件时产生警告:

    • 帐户需要未加载的身份验证插件。

    • 帐户需要 sha256_passwordcaching_sha2_password 身份验证插件,但服务器未启用 SSL 或 RSA,如插件所需。

    启用 --validate-user-plugins 将减慢服务器初始化和 FLUSH PRIVILEGES。如果您不需要额外的检查,可以在启动时禁用此选项以避免性能下降。

  • --verbose, -v

    使用此选项与 --help 选项以获取详细帮助。

  • --version, -V

    显示版本信息并退出。