官网地址:MySQL :: MySQL 5.7 Reference Manual :: 5.1.6 Server Command Options
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
当启动mysqld服务器时,您可以使用第 4.2.2 节“指定程序选项”中描述的任何方法指定程序选项 。最常见的方法是在选项文件或命令行中提供选项。但是,在大多数情况下,希望确保服务器每次运行时都使用相同的选项。确保这一点的最佳方法是将它们列在选项文件中。请参见 第 4.2.2.2 节“使用选项文件”。该部分还描述了选项文件格式和语法。
mysqld[mysqld]
从和中读取选项 [server]
。mysqld_safe从 [mysqld]
、[server]
、 [mysqld_safe]
和 [safe_mysqld]
组中读取选项。 mysql.server[mysqld]
从和中读取选项 [mysql.server]
。
嵌入式 MySQL 服务器通常从 [server]
、[embedded]
和 组中读取选项,其中是服务器嵌入的应用程序的名称。 [
xxxxx
_SERVER]xxxxx
mysqld接受许多命令选项。要获得简要摘要,请执行以下命令:
mysqld --help
要查看完整列表,请使用以下命令:
mysqld --verbose --help
列表中的一些项目实际上是可以在服务器启动时设置的系统变量。这些可以在运行时使用语句显示SHOW VARIABLES。上述mysqld命令显示的某些项目 不会出现在SHOW VARIABLES输出中;这是因为它们只是选项而不是系统变量。
以下列表显示了一些最常见的服务器选项。其他选项在其他部分中进行了描述:
影响安全性的选项:请参见 第 6.1.4 节,“安全相关的 mysqld 选项和变量”。
SSL 相关选项:请参阅 加密连接的命令选项。
二进制日志控制选项:请参见第 5.4.4 节“二进制日志”。
与复制相关的选项:请参见 第 16.1.6 节 “复制和二进制日志记录选项和变量”。
加载插件(例如可插拔存储引擎)的选项:请参阅第 5.5.1 节“安装和卸载插件”。
特定于特定存储引擎的选项:请参见 第 14.15 节,“InnoDB 启动选项和系统变量”和 第 15.2.1 节,“MyISAM 启动选项”。
某些选项控制缓冲区或高速缓存的大小。对于给定的缓冲区,服务器可能需要分配内部数据结构。这些结构通常是从分配给缓冲区的总内存中分配的,并且所需的空间量可能取决于平台。这意味着当您为控制缓冲区大小的选项分配值时,实际可用空间量可能与分配的值不同。在某些情况下,金额可能小于指定的值。服务器也有可能向上调整值。例如,如果将值 0 分配给最小值为 1024 的选项,则服务器会将该值设置为 1024。
除非另有说明,缓冲区大小、长度和堆栈大小的值均以字节为单位给出。
某些选项采用文件名值。除非另有指定,如果该值为相对路径名,则默认文件位置是数据目录。要显式指定位置,请使用绝对路径名。假设数据目录是 /var/mysql/data
. 如果文件值选项作为相对路径名给出,则它位于 /var/mysql/data
. 如果该值是绝对路径名,则其位置由路径名指定。
您还可以使用变量名称作为选项在服务器启动时设置服务器系统变量的值。要将值分配给服务器系统变量,请使用 形式的选项 。例如, 将变量设置 为值 384MB。 --
--sort_buffer_size=384Msort_buffer_sizevar_name
=value
当您为变量分配值时,MySQL 可能会自动更正该值以使其保持在给定范围内,或者如果仅允许某些值,则将该值调整为最接近的允许值。
要限制在运行时使用语句设置系统变量的最大值 SET ,请在服务器启动时使用以下形式的选项指定该最大值 。 --maximum-
var_name
=value
您可以在运行时使用该语句更改大多数系统变量的值SET 。请参见第 13.7.4.1 节“变量赋值的 SET 语法”。
第 5.1.7 节“服务器系统变量”提供了所有变量的完整描述,以及在服务器启动和运行时设置它们的附加信息。有关更改系统变量的信息,请参见 第 5.1.1 节 “配置服务器”。
--help,-?
命令行格式 | --help |
---|
显示简短的帮助消息并退出。使用 --verbose
和 --help选项查看完整消息。
--allow-suspicious-udfs
命令行格式 | --allow-suspicious-udfs[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
该选项控制是否可以加载仅具有xxx
主函数符号的可加载函数。默认情况下,该选项是关闭的,并且只能加载至少有一个辅助符号的可加载函数;这可以防止尝试从包含合法函数的共享目标文件之外的共享目标文件加载函数。请参阅可加载函数安全预防措施。
--ansi
命令行格式 | --ansi |
---|
使用标准 (ANSI) SQL 语法而不是 MySQL 语法。要更精确地控制服务器 SQL 模式,请改用该 --sql-mode选项。请参见 第 1.6 节“MySQL 标准合规性”和 第 5.1.10 节“服务器 SQL 模式”。
--basedir=dir_name, -b dir_name
命令行格式 | --basedir=dir_name |
---|---|
系统变量 | basedir |
范围 | 全球的 |
动态的 | 不 |
类型 | 目录名称 |
默认值 | configuration-dependent default |
MySQL 安装目录的路径。该选项设置basedir系统变量。
--bootstrap
命令行格式 | --bootstrap |
---|---|
已弃用 | 是的 |
mysql_install_db程序 使用此选项来 创建 MySQL 权限表,而无需启动完整的 MySQL 服务器。
mysql_install_db已弃用,因为它的功能已集成到 MySQL 服务器mysqld中。因此, mysql_install_db传递给 mysqld 的--bootstrap服务器选项也已被弃用。要初始化 MySQL 安装,请使用或 选项调用mysqld。有关更多信息,请参见 第 2.9.1 节 “初始化数据目录”。预计 mysql_install_db和 服务器选项将在 MySQL 的未来版本中删除。 --initialize--initialize-insecure--bootstrap
--bootstrap--daemonize
与、 --initialize、 和 互斥--initialize-insecure。
--bootstrap全局事务标识符 (GTID) 在使用 时不会被禁用 。--bootstrap使用(错误#20980271)。请参见第 16.1.3 节“使用全局事务标识符进行复制”。
当服务器在引导模式下运行时,某些功能不可用,从而限制了系统变量命名的任何文件中允许的语句init_file 。有关详细信息,请参阅该变量的说明。另外, disabled_storage_engines 系统变量没有任何作用。
--character-set-client-handshake
命令行格式 | --character-set-client-handshake[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | ON |
不要忽略客户端发送的字符集信息。要忽略客户端信息并使用默认服务器字符集,请使用 --skip-character-set-client-handshake; 这使得 MySQL 的行为类似于 MySQL 4.0。
--chroot=dir_name, -r
dir_name
命令行格式 | --chroot=dir_name |
---|---|
类型 | 目录名称 |
通过使用系统调用将mysqld服务器在启动过程中置于封闭环境中 chroot()
。这是推荐的安全措施。此选项的使用在一定程度上限制了 LOAD DATA和 SELECT ... INTO OUTFILE。
--console
命令行格式 | --console |
---|---|
平台特定 | 视窗 |
(仅限 Windows。)将错误日志写入 stderr
和stdout
(控制台)。如果使用此选项, mysqld不会关闭控制台窗口。
--console--log-error如果两者都给出,则优先 。(在 MySQL 5.5 和 5.6 中,情况相反: 如果两者都给出,则--log-error
优先--console。)
--core-file
命令行格式 | --core-file |
---|
使用此选项时,如果mysqld死机 ,则写入核心文件 ;不需要(或接受)任何参数。核心文件的名称和位置取决于系统。在 Linux 上,一个名为 的核心文件 被写入进程的当前工作目录,对于mysqld来说是数据目录。 表示服务器进程的进程ID。在 macOS 上,名为的核心文件 将写入该目录。在 Solaris 上,使用coreadm命令指定核心文件的写入位置以及命名方式。 core.
pid
pid
core.
pid
/cores
对于某些系统,要获取核心文件,您还必须指定 mysqld_safe--core-file-size选项 。请参见 第 4.3.2 节“mysqld_safe — MySQL 服务器启动脚本”。在某些系统(例如 Solaris)上,如果您也使用该选项,则不会获得核心文件 。可能还有其他限制或限制。 例如,在启动服务器之前可能需要执行ulimit -c unlimited 。请查阅您的系统文档。 --user
--daemonize
命令行格式 | --daemonize[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
此选项使服务器作为传统的分叉守护进程运行,从而允许它与使用 systemd 进行进程控制的操作系统一起工作。有关更多信息,请参阅 第 2.5.10 节 “使用 systemd 管理 MySQL 服务器”。
--daemonize--bootstrap与、 --initialize、 和 互斥--initialize-insecure。
--datadir=dir_name, -h
dir_name
命令行格式 | --datadir=dir_name |
---|---|
系统变量 | datadir |
范围 | 全球的 |
动态的 | 不 |
类型 | 目录名称 |
MySQL 服务器数据目录的路径。该选项设置datadir系统变量。请参阅该变量的描述。
--debug[=debug_options], -# [
debug_options
]
命令行格式 | --debug[=debug_options] |
---|---|
系统变量 | debug |
范围 | 全局、会话 |
动态的 | 是的 |
类型 | 细绳 |
默认值 (Unix) | d:t:i:o,/tmp/mysqld.trace |
默认值(Windows) | d:t:i:O,\mysqld.trace |
如果 MySQL 配置了 CMake选项,则可以使用此选项来获取mysqld正在执行的操作的跟踪文件。典型的字符串是 . 默认值在 Unix 和Windows 上。 -DWITH_DEBUG=1 debug_options
d:t:o,
file_name
d:t:i:o,/tmp/mysqld.trace
d:t:i:O,\mysqld.trace
通过使用调试支持来配置 MySQL,您可以在启动服务器时-DWITH_DEBUG=1使用该 选项。--debug="d,parser_debug"这会导致用于处理 SQL 语句的 Bison 解析器将解析器跟踪转储到服务器的标准错误输出。通常,此输出会写入错误日志。
该选项可以多次给出。以前一个值开头的值+
或-
与前一个值相加或减去的值。例如, 将值设置为 。 --debug=T --debug=+PP:T
有关更多信息,请参见第 5.8.3 节“DBUG 包”。
--debug-sync-timeout[=N]
命令行格式 | --debug-sync-timeout[=#] |
---|---|
类型 | 整数 |
控制是否启用用于测试和调试的调试同步工具。使用调试同步需要使用CMake选项配置 MySQL (请参见 第 2.8.7 节“MySQL 源配置选项”)。如果未编译 Debug Sync,则此选项不可用。该选项值是以秒为单位的超时。默认值为 0,这会禁用调试同步。要启用它,请指定一个大于 0 的值;该值也成为各个同步点的默认超时。如果该选项未指定值,则超时设置为 300 秒。 -DWITH_DEBUG=ON
有关调试同步工具以及如何使用同步点的说明,请参阅 MySQL 内部:测试同步。
--default-time-zone=timezone
命令行格式 | --default-time-zone=name |
---|---|
类型 | 细绳 |
设置默认服务器时区。该选项设置全局 time_zone系统变量。如果未给出此选项,则默认时区与系统时区相同(由 system_time_zone系统变量的值给出)。
该system_time_zone变量不同于time_zone. 尽管它们可能具有相同的值,但后一个变量用于初始化每个连接的客户端的时区。请参见第 5.1.13 节,“MySQL 服务器时区支持”。
--defaults-extra-file=file_name
在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果该文件不存在或无法访问,则会发生错误。如果 file_name
不是绝对路径名,则解释为相对于当前目录。如果使用的话,这必须是命令行上的第一个选项。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节 “影响选项文件处理的命令行选项”。
--defaults-file=file_name
只读给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果 file_name
不是绝对路径名,则解释为相对于当前目录。
如果使用的话,这必须是命令行上的第一个选项,除非服务器是使用 and --defaults-file( --install或 --install-manual) 选项启动的, --install
(或 --install-manual
) 必须是第一个选项。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节 “影响选项文件处理的命令行选项”。
--defaults-group-suffix=str
不仅要读取常用的选项组,还要读取具有常用名称和后缀的组 str
。例如, mysqld通常读取 [mysqld]
组。如果此选项指定为 --defaults-group-suffix=_other, mysqld也会读取该 [mysqld_other]
组。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节 “影响选项文件处理的命令行选项”。
--des-key-file=file_name
命令行格式 | --des-key-file=file_name |
---|---|
已弃用 | 是的 |
从此文件中读取默认 DES 密钥。DES_ENCRYPT()这些键由和 功能使用DES_DECRYPT()。
和函数在 MySQL 5.7 中已弃用,在 MySQL 8.0 中已删除,不应再使用DES_ENCRYPT()。 DES_DECRYPT()因此, --des-key-file它也被弃用并在 MySQL 8.0 中被删除。
--disable-partition-engine-check
命令行格式 | --disable-partition-engine-check[={OFF|ON}] |
---|---|
介绍 | 5.7.17 |
已弃用 | 5.7.17 |
类型 | 布尔值 |
默认值(≥ 5.7.21) | ON |
默认值(≥ 5.7.17,≤ 5.7.20) | OFF |
是否禁用对具有非本机分区的表的启动检查。
从 MySQL 5.7.17 开始,当用于给定表的存储引擎预计提供其自己的( “本机” ) 分区处理程序时,MySQL 服务器中的通用分区处理程序已被弃用,并在 MySQL 8.0 中被删除。目前,只有 InnoDB和 NDB存储引擎可以做到这一点。
使用具有非本机分区的表会导致 ER_WARN_DEPRECATED_SYNTAX 警告。在 MySQL 5.7.17 到 5.7.20 中,服务器在启动时自动执行检查以识别使用非本机分区的表;对于任何找到的错误,服务器都会将一条消息写入其错误日志。要禁用此检查,请使用该 --disable-partition-engine-check 选项。在 MySQL 5.7.21 及更高版本中, 不执行此检查;在这些版本中, --disable-partition-engine-check=false如果您希望服务器使用通用分区处理程序检查表,则必须使用 启动服务器(Bug #85830、Bug #25846957)。
使用具有非本机分区的表会导致 ER_WARN_DEPRECATED_SYNTAX 警告。此外,服务器在启动时执行检查以识别使用非本机分区的表;对于任何发现的错误,服务器都会向其错误日志写入一条消息。要禁用此检查,请使用该 --disable-partition-engine-check 选项。
为了准备迁移到 MySQL 8.0,任何具有非本机分区的表都应更改为使用提供本机分区的引擎,或者设为非分区。例如,要将表更改为InnoDB
,请执行以下语句:
ALTER TABLE table_name ENGINE = INNODB;
--early-plugin-load=plugin_list
命令行格式 | --early-plugin-load=plugin_list |
---|---|
介绍 | 5.7.11 |
类型 | 细绳 |
默认值(≥ 5.7.12) | empty string |
默认值 (5.7.11) | keyring_file plugin library file name |
该选项告诉服务器在加载强制内置插件之前和存储引擎初始化之前要加载哪些插件。仅支持使用PLUGIN_OPT_ALLOW_EARLY
. --early-plugin-load 如果给出 多个选项,则仅适用最后一个。
选项值是以分号分隔的 plugin_library
和 值列表。每个都是包含插件代码的库文件的名称,每个 都是要加载的插件的名称。如果插件库的命名没有任何前面的插件名称,服务器将加载库中的所有插件。使用前面的插件名称,服务器仅从库加载指定的插件。服务器在系统变量指定的目录中查找插件库文件 。 name
=
plugin_library
plugin_library
name
plugin_dir
例如,如果名为myplug1
和 的 插件myplug2
包含在插件库文件myplug1.so
和 中myplug2.so
,则使用此选项执行早期插件加载:
mysqld --early-plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"
引号将参数值括起来,因为否则某些命令解释器会将分号 ( ;
) 解释为特殊字符。(例如,Unix shell 将其视为命令终止符。)
每个命名插件仅在一次mysqld 调用时提前加载 。重新启动后,除非再次使用,否则插件不会提前加载 --early-plugin-load。
--initialize
如果使用或 启动服务器 ,则不会加载 --initialize-insecure指定的插件 。--early-plugin-load
如果服务器使用 运行 --help,则 --early-plugin-load加载指定的插件但不初始化。此行为可确保插件选项显示在帮助消息中。
InnoDB
表空间加密依赖MySQL Keyring进行加密密钥管理,并且必须在存储引擎初始化之前加载要使用的keyring插件,以便于InnoDB
加密表的恢复。例如,希望keyring_file
在启动时加载插件的管理员应该使用 --early-plugin-load适当的选项值(例如 keyring_file.so
在 Unix 和类 Unix 系统上或keyring_file.dll
在 Windows 上)。
在 MySQL 5.7.11 中,默认 --early-plugin-load值是插件库文件的名称keyring_file
,导致默认加载该插件。在 MySQL 5.7.12 及更高版本中,默认 --early-plugin-load值为空;要加载keyring_file
插件,您必须显式指定带有命名插件库文件的值的选项keyring_file
。
默认值的此更改 导致 从 5.7.11 升级到 5.7.12 或更高版本时表空间加密--early-plugin-load不兼容。InnoDB
已加密 InnoDB
表空间的管理员必须采取明确的操作以确保持续加载密钥环插件:使用 --early-plugin-load命名插件库文件的选项启动服务器。有关其他信息,请参阅 第 6.4.4.1 节 “密钥环插件安装”。
有关InnoDB
表空间加密的信息,请参阅第 14.14 节 “InnoDB 静态数据加密”。有关插件加载的一般信息,请参阅 第 5.5.1 节 “安装和卸载插件”。
--exit-info[=flags], -T [
flags
]
命令行格式 | --exit-info[=flags] |
---|---|
类型 | 整数 |
这是不同标志的位掩码,可用于调试mysqld服务器。除非您确切知道它的作用, 否则不要使用此选项!
--external-locking
命令行格式 | --external-locking[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
启用外部锁定(系统锁定),默认情况下禁用。如果在不能完全工作的系统(例如Linux)上使用此选项 ,则mysqldlockd
很容易死锁。
要显式禁用外部锁定,请使用 --skip-external-locking
.
外部锁定仅影响 MyISAM表访问。有关更多信息,包括可以和不能使用它的条件,请参阅第 8.11.5 节“外部锁定”。
--flush
命令行格式 | --flush[={OFF|ON}] |
---|---|
系统变量 | flush |
范围 | 全球的 |
动态的 | 是的 |
类型 | 布尔值 |
默认值 | OFF |
在每个 SQL 语句之后将所有更改刷新(同步)到磁盘。通常,MySQL 仅在每个 SQL 语句之后将所有更改写入磁盘,并让操作系统处理与磁盘的同步。请参见 第 B.3.3.3 节“如果 MySQL 不断崩溃该怎么办”。
如果--flush指定,则 的值flush_time无关紧要并且更改 flush_time对刷新行为没有影响。
--gdb
命令行格式 | --gdb[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
安装中断处理程序SIGINT
(需要停止mysqld以 ^C
设置断点)并禁用堆栈跟踪和核心文件处理。请参见 第 5.8.1.4 节,“在 gdb 下调试 mysqld”。
--ignore-db-dir=dir_name
命令行格式 | --ignore-db-dir=dir_name |
---|---|
已弃用 | 5.7.16 |
类型 | 目录名称 |
SHOW DATABASES此选项告诉服务器为了语句或 表 的目的而忽略给定的目录名称INFORMATION_SCHEMA
。例如,如果 MySQL 配置将数据目录定位在 Unix 上文件系统的根目录下,系统可能会 lost+found
在那里创建一个服务器应忽略的目录。使用 启动服务器会 --ignore-db-dir=lost+found 导致该名称不被列为数据库。
要指定多个名称,请多次使用此选项,每个名称一次。指定具有空值的选项(即 as --ignore-db-dir=)会将目录列表重置为空列表。
服务器启动时给出的此选项的实例用于设置ignore_db_dirs系统变量。
此选项在 MySQL 5.7 中已弃用。随着 MySQL 8.0 中数据字典的引入,它变得多余并在该版本中被删除。
--initialize
命令行格式 | --initialize[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
此选项用于通过创建数据目录并填充 mysql
系统数据库中的表来初始化 MySQL 安装。有关更多信息,请参见 第 2.9.1 节 “初始化数据目录”。
此选项限制 MySQL 服务器的许多其他启动选项的影响,或者与它们不兼容。此类最常见的一些问题如下:
我们强烈建议您在使用 初始化数据目录时--initialize
,除了 --datadir用于设置目录位置的其他选项(如 --basedir和 可能的话) 之外,不要指定任何其他选项--user
。初始化完成且 mysqld关闭后,启动 MySQL 服务器时可以指定正在运行的 MySQL 服务器的选项。这也适用于使用 --initialize-insecure 代替时--initialize
。
当服务器以 启动时 --initialize
,某些功能不可用,从而限制了系统变量命名的任何文件中允许的语句 init_file。有关详细信息,请参阅该变量的说明。另外, disabled_storage_engines 系统变量没有任何作用。
--ndbcluster与 一起使用时 该选项将被忽略--initialize
。
--initialize
--bootstrap与和 互斥 --daemonize。
使用该选项初始化服务器时,前面列表中的项目也适用 --initialize-insecure
。
--initialize-insecure
命令行格式 | --initialize-insecure[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
此选项用于通过创建数据目录并填充 mysql
系统数据库中的表来初始化 MySQL 安装。此选项意味着 --initialize,并且适用相同的限制和限制;有关更多信息,请参阅该选项的描述和 第 2.9.1 节 “初始化数据目录”。
root
该选项创建一个空密码的 MySQL用户,这是不安全的。因此,如果没有手动设置此密码,请勿在生产中使用它。有关如何执行此操作的信息, 请参阅 初始化后 root 密码分配。
--innodb-
xxx
设置存储引擎的选项InnoDB
。这些选项在第 14.15 节“InnoDB 启动选项和系统变量”InnoDB
中列出 。
--install [service_name]
命令行格式 | --install [service_name] |
---|---|
平台特定 | 视窗 |
(仅限 Windows)将服务器安装为在 Windows 启动期间自动启动的 Windows 服务。MySQL
如果未 service_name
指定值,则为默认服务名称。有关更多信息,请参阅第 2.3.4.8 节“将 MySQL 作为 Windows 服务启动”。
如果服务器使用 --defaults-file和 --install选项启动,则 --install必须是第一个。
--install-manual [service_name]
命令行格式 | --install-manual [service_name] |
---|---|
平台特定 | 视窗 |
(仅限 Windows)将服务器安装为必须手动启动的 Windows 服务。它不会在 Windows 启动过程中自动启动。MySQL
如果未 service_name
指定值,则为默认服务名称 。有关更多信息,请参阅第 2.3.4.8 节“将 MySQL 作为 Windows 服务启动”。
如果服务器使用 --defaults-file和 --install-manual选项启动,则 --install-manual必须是第一个。
--language=lang_name, -L lang_name
命令行格式 | --language=name |
---|---|
已弃用 | 是的; 改用lc-messages-dir_ |
系统变量 | language |
范围 | 全球的 |
动态的 | 不 |
类型 | 目录名称 |
默认值 | /usr/local/mysql/share/mysql/english/ |
用于错误消息的语言。 lang_name
可以作为语言名称或语言文件安装目录的完整路径名给出。请参见 第 10.12 节 “设置错误消息语言”。
--lc-messages-dir--lc-messages
应该使用and 而不是--language,后者已被弃用(并作为 的同义词处理 --lc-messages-dir)。您应该预料到该--language选项将在 MySQL 的未来版本中被删除。
--large-pages
命令行格式 | --large-pages[={OFF|ON}] |
---|---|
系统变量 | large_pages |
范围 | 全球的 |
动态的 | 不 |
平台特定 | Linux |
类型 | 布尔值 |
默认值 | OFF |
某些硬件/操作系统架构支持大于默认值(通常为 4KB)的内存页。此支持的实际实现取决于底层硬件和操作系统。由于减少了转换后备缓冲区 (TLB) 未命中,执行大量内存访问的应用程序可以通过使用大页面来获得性能改进。
MySQL支持Linux实现大页面支持(在Linux中称为HugeTLB)。请参见 第 8.12.4.3 节“启用大页面支持”。有关 Solaris 对大页面的支持,请参阅该 --super-large-pages
选项的说明。
--large-pages默认情况下禁用。
--lc-messages=locale_name
命令行格式 | --lc-messages=name |
---|---|
系统变量 | lc_messages |
范围 | 全局、会话 |
动态的 | 是的 |
类型 | 细绳 |
默认值 | en_US |
用于错误消息的区域设置。默认为 en_US
. 服务器将参数转换为语言名称,并将其与 的值组合 --lc-messages-dir
以生成错误消息文件的位置。请参见 第 10.12 节 “设置错误消息语言”。
--lc-messages-dir=dir_name
命令行格式 | --lc-messages-dir=dir_name |
---|---|
系统变量 | lc_messages_dir |
范围 | 全球的 |
动态的 | 不 |
类型 | 目录名称 |
错误消息所在的目录。服务器使用该值和 的值 --lc-messages来生成错误消息文件的位置。请参见 第 10.12 节 “设置错误消息语言”。
--local-service
命令行格式 | --local-service |
---|
(仅限 Windows)服务名称后面的选项会导致服务器使用具有有限系统权限的 Windows 帐户--local-service
运行 。LocalService
如果 和 --defaults-file都 --local-service
在服务名称后面给出,则它们可以按任意顺序排列。请参见 第 2.3.4.8 节,“将 MySQL 作为 Windows 服务启动”。
--log-error[=file_name]
命令行格式 | --log-error[=file_name] |
---|---|
系统变量 | log_error |
范围 | 全球的 |
动态的 | 不 |
类型 | 文件名 |
将错误日志和启动消息写入此文件。请参见 第 5.4.2 节“错误日志”。
如果该选项未指定文件,则 Unix 和类 Unix 系统上的错误日志文件名位于
数据目录中。--pid-file除非指定了该选项,否则 Windows 上的文件名是相同的。host_name
.err.err
在这种情况下,文件名是数据目录中 带有后缀 的 PID 文件基本名称。
如果该选项命名一个文件,则错误日志文件具有该名称(.err
如果名称没有后缀,则添加后缀),位于数据目录下,除非给出绝对路径名来指定不同的位置。
在 Windows 上,如果两者都给出--console,则优先--log-error。在这种情况下,服务器将错误日志写入控制台而不是文件。(在 MySQL 5.5 和 5.6 中,情况相反:如果两者都给出,则--log-error 优先--console 。)
--log-isam[=file_name]
命令行格式 | --log-isam[=file_name] |
---|---|
类型 | 文件名 |
记录MyISAM
对此文件的所有更改(仅在调试时使用MyISAM
)。
--log-raw
命令行格式 | --log-raw[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
写入普通查询日志、慢查询日志和二进制日志的某些语句中的密码会被服务器重写,不会以纯文本形式出现。通过使用该选项启动服务器,可以抑制一般查询日志的密码重写 --log-raw。此选项对于诊断目的可能很有用,可以查看服务器接收到的语句的确切文本,但出于安全原因,不建议在生产中使用。
如果安装了查询重写插件,该 --log-raw选项会影响语句日志记录,如下所示:
如果没有--log-raw,服务器会记录查询重写插件返回的语句。这可能与收到的声明有所不同。
使用 时--log-raw,服务器会记录收到的原始语句。
有关更多信息,请参阅第 6.1.2.3 节 “密码和日志记录”。
--log-short-format
命令行格式 | --log-short-format[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
如果已激活慢查询日志,则将较少的信息记录到慢查询日志中。
--log-tc=file_name
命令行格式 | --log-tc=file_name |
---|---|
类型 | 文件名 |
默认值 | tc.log |
内存映射事务协调器日志文件的名称(适用于禁用二进制日志时影响多个存储引擎的 XA 事务)。默认名称是 tc.log
. 如果未给出完整路径名,则该文件将在数据目录下创建。该选项未使用。
--log-tc-size=size
命令行格式 | --log-tc-size=# |
---|---|
类型 | 整数 |
默认值(64 位平台,≥ 5.7.21) | 6 * page size |
默认值(64 位平台,≤ 5.7.20) | 24576 |
默认值(32 位平台,≥ 5.7.21) | 6 * page size |
默认值(32 位平台,≤ 5.7.20) | 24576 |
最小值 | 6 * page size |
最大值(64 位平台) | 18446744073709551615 |
最大值(32 位平台) | 4294967295 |
内存映射事务协调器日志的大小(以字节为单位)。默认值和最小值是页面大小的 6 倍,并且该值必须是页面大小的倍数。(MySQL 5.7.21之前,默认大小为24KB。)
--log-warnings[=level], -W [
level
]
命令行格式 | --log-warnings[=#] |
---|---|
已弃用 | 是的 |
系统变量 | log_warnings |
范围 | 全球的 |
动态的 | 是的 |
类型 | 整数 |
默认值 | 2 |
最小值 | 0 |
最大值(64 位平台) | 18446744073709551615 |
最大值(32 位平台) | 4294967295 |
系统log_error_verbosity 变量优先于 --log-warnings选项或系统变量,并且应该用来代替选项或 log_warnings系统变量。log_error_verbosity有关详细信息,请参阅和 的说明 log_warnings。 不推荐使用--log-warnings命令行选项和系统 变量;log_warnings预计它们会在 MySQL 的未来版本中被删除。
是否在错误日志中生成额外的警告消息。默认情况下启用此选项。要禁用它,请使用 --log-warnings=0. 指定不带值的选项level
会将当前值增加 1。如果该值大于 0,服务器会记录有关基于语句的日志记录不安全的语句的消息。如果值大于 1。请参见 第 B.3.2.9 节“通信错误和中止连接”。
--memlock
命令行格式 | --memlock[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
将mysqld进程 锁定在内存中。如果您遇到操作系统导致mysqld交换到磁盘的问题,此选项可能会有所帮助。
--memlock适用于支持mlockall()
系统调用的系统;这包括 Solaris、大多数使用 2.4 或更高版本内核的 Linux 发行版,或许还包括其他 Unix 系统。在 Linux 系统上,您可以 mlockall()
通过检查系统文件中是否定义了该选项来判断是否支持(以及该选项)mman.h
,如下所示:
$> grep mlockall /usr/include/sys/mman.h
如果mlockall()
支持,您应该在上一个命令的输出中看到类似以下内容:
extern int mlockall (int __flags) __THROW;
使用此选项可能需要您将服务器运行为 root
,出于安全原因,这通常不是一个好主意。请参见 第 6.1.5 节“如何以普通用户身份运行 MySQL”。
root
在 Linux 和其他系统上,您可以通过更改 文件 来避免运行服务器limits.conf
。请参阅第 8.12.4.3 节 “启用大页面支持”中有关 memlock 限制的注释 。
不能在不支持mlockall()
系统调用的系统上使用该选项;如果这样做,mysqld很可能在您尝试启动它时立即退出。
--myisam-block-size=N
命令行格式 | --myisam-block-size=# |
---|---|
类型 | 整数 |
默认值 | 1024 |
最小值 | 1024 |
最大值 | 16384 |
用于MyISAM
索引页的块大小。
--no-defaults
不要读取任何选项文件。如果程序启动由于从选项文件中读取未知选项而失败, --no-defaults可用于阻止读取它们。如果使用的话,这必须是命令行上的第一个选项。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节 “影响选项文件处理的命令行选项”。
--old-style-user-limits
命令行格式 | --old-style-user-limits[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
启用旧式用户限制。(在 MySQL 5.0.3 之前,帐户资源限制是针对用户连接的每个主机而不是表中的每个帐户行单独计算的 user
。)请参阅 第 6.2.16 节 “设置帐户资源限制”。
--partition[=value]
命令行格式 | --partition[={OFF|ON}] |
---|---|
已弃用 | 5.7.16 |
禁用于 | skip-partition |
类型 | 布尔值 |
默认值 | ON |
启用或禁用 MySQL 服务器中的用户定义分区支持。
该选项在 MySQL 5.7.16 中已弃用,并从 MySQL 8.0 中删除,因为在 MySQL 8.0 中,分区引擎被本机分区取代,而本机分区无法禁用。
--performance-schema-xxx
配置性能架构选项。有关详细信息,请参见 第 25.14 节 “性能模式命令选项”。
--plugin-load=plugin_list
命令行格式 | --plugin-load=plugin_list |
---|---|
类型 | 细绳 |
该选项告诉服务器在启动时加载指定的插件。--plugin-load如果给出多个 选项,则仅适用最后一个。可以使用 --plugin-load-add
选项指定要加载的其他插件。
选项值是以分号分隔的 plugin_library
和 值列表。每个都是包含插件代码的库文件的名称,每个 都是要加载的插件的名称。如果插件库的命名没有任何前面的插件名称,服务器将加载库中的所有插件。使用前面的插件名称,服务器仅从库加载指定的插件。服务器在系统变量指定的目录中查找插件库文件 。 name
=
plugin_library
plugin_library
name
plugin_dir
例如,如果名为myplug1
和 的 插件myplug2
包含在插件库文件myplug1.so
和 中myplug2.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。请参见 第 5.5.2 节“获取服务器插件信息”。
有关插件加载的更多信息,请参阅 第 5.5.1 节 “安装和卸载插件”。
--plugin-load-add=plugin_list
命令行格式 | --plugin-load-add=plugin_list |
---|---|
类型 | 细绳 |
此选项补充了该 --plugin-load选项。 --plugin-load-add将一个或多个插件添加到要在启动时加载的插件集中。参数格式与 相同 --plugin-load。 --plugin-load-add可用于避免将大量插件指定为单个又长又笨重的--plugin-load 参数。
--plugin-load-add可以在没有 的情况下给出 --plugin-load,但 的任何实例都--plugin-load-add出现在 之前--plugin-load。没有效果,因为 --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。请参见 第 5.5.2 节“获取服务器插件信息”。
有关插件加载的更多信息,请参阅 第 5.5.1 节 “安装和卸载插件”。
--plugin-xxx
指定与服务器插件相关的选项。例如,许多存储引擎可以构建为插件,对于此类引擎,可以使用前缀指定它们的选项 --plugin
。因此, --innodb-file-per-table的选项InnoDB
可以指定为 --plugin-innodb-file-per-table。
对于可以启用或禁用的布尔选项, --skip
还支持前缀和其他替代格式(请参见 第 4.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
命令行格式 | --port=port_num |
---|---|
系统变量 | port |
范围 | 全球的 |
动态的 | 不 |
类型 | 整数 |
默认值 | 3306 |
最小值 | 0 |
最大值 | 65535 |
侦听 TCP/IP 连接时使用的端口号。在 Unix 和类 Unix 系统上,端口号必须为 1024 或更高,除非服务器由 root
操作系统用户启动。将此选项设置为 0 会导致使用默认值。
--port-open-timeout=num
命令行格式 | --port-open-timeout=# |
---|---|
类型 | 整数 |
默认值 | 0 |
在某些系统上,当服务器停止时,TCP/IP 端口可能不会立即变得可用。如果服务器随后快速重新启动,则其重新打开端口的尝试可能会失败。该选项指示如果无法打开 TCP/IP 端口,服务器应等待多少秒来释放该端口。默认不等待。
--print-defaults
打印程序名称及其从选项文件中获取的所有选项。密码值被屏蔽。如果使用的话,这必须是命令行上的第一个选项,但它可以紧接在 --defaults-file或 之后 使用--defaults-extra-file。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节 “影响选项文件处理的命令行选项”。
--remove [service_name]
命令行格式 | --remove [service_name] |
---|---|
平台特定 | 视窗 |
(仅限 Windows)删除 MySQL Windows 服务。MySQL
如果未 service_name
指定值,则为默认服务名称。有关更多信息,请参阅第 2.3.4.8 节“将 MySQL 作为 Windows 服务启动”。
--safe-user-create
命令行格式 | --safe-user-create[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
如果启用此选项,则用户无法使用该GRANT 语句创建新的 MySQL 用户,除非该用户具有 系统表或表中任何列的INSERT权限 。mysql.user
如果您希望用户能够创建具有该用户有权授予的权限的新用户,则应授予该用户以下权限:
GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';
这确保用户不能直接更改任何权限列,而必须使用该 GRANT语句将权限授予其他用户。
--skip-grant-tables
命令行格式 | --skip-grant-tables[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
该选项影响服务器启动顺序:
--skip-grant-tables导致服务器不读取 mysql
系统数据库中的授权表,从而在不使用权限系统的情况下启动。这使得有权访问服务器的任何人都可以 不受限制地访问所有数据库。
要使启动的服务器 --skip-grant-tables在运行时加载授权表,请执行权限刷新操作,可以通过以下方式完成:
FLUSH PRIVILEGES连接到服务器后 发出 MySQL语句。
从命令行 执行mysqladminlush-privileges或mysqladmin reload命令。
由于启动后执行的其他操作,权限刷新也可能隐式发生,从而导致服务器开始使用授权表。例如, mysql_upgrade在升级过程中刷新权限。
--skip-grant-tables导致服务器不加载在mysql
系统数据库中注册的某些其他对象:
使用INSTALL PLUGIN并在 mysql.plugin
系统表中注册的插件安装。
要使插件在使用时也被加载 --skip-grant-tables,请使用--plugin-load 或--plugin-load-add 选项。
使用 CREATE EVENT并在mysql.event
系统表中注册的预定事件。
使用系统表安装 CREATE FUNCTION并注册的 可加载函数mysql.func
。
--skip-grant-tables导致 disabled_storage_engines 系统变量不起作用。
--skip-host-cache
命令行格式 | --skip-host-cache |
---|
禁用内部主机缓存的使用以实现更快的名称到 IP 解析。禁用缓存后,服务器每次客户端连接时都会执行 DNS 查找。
使用与将系统变量设置为 0 --skip-host-cache类似 ,但更灵活,因为它还可以用于在运行时(而不仅仅是在服务器启动时)调整大小、启用或禁用主机缓存。 host_cache_sizehost_cache_size
使用 启动服务器 --skip-host-cache不会阻止运行时更改 的值 ,但此类更改没有任何效果,并且即使设置大于 0,也 host_cache_size不会重新启用缓存 。host_cache_size
有关主机缓存如何工作的更多信息,请参阅 第 5.1.11.2 节 “DNS 查找和主机缓存”。
--skip-innodb
禁用InnoDB
存储引擎。在这种情况下,因为默认存储引擎是 ,所以除非您还使用和 将默认存储引擎设置为永久存储和表的其他引擎, InnoDB否则服务器无法启动 。 --default-storage-engine--default-tmp-storage-engineTEMPORARY
InnoDB
无法禁用存储引擎,并且该 选项--skip-innodb 已弃用且无效。它的使用会导致警告。预计该选项将在 MySQL 的未来版本中删除。
--skip-new
命令行格式 | --skip-new |
---|
此选项禁用(过去被认为是)新的、可能不安全的行为。其结果是这些设置: delay_key_write=OFF、 concurrent_insert=NEVER、 automatic_sp_privileges=OFF。它还会导致OPTIMIZE TABLE 映射到不支持的 ALTER TABLE存储引擎。OPTIMIZE TABLE
--skip-partition
命令行格式 |
|
---|---|
已弃用 | 5.7.16 |
禁用用户定义的分区。分区表可以使用SHOW TABLES或通过查询信息模式 TABLES表来查看,但不能创建或修改,也不能访问此类表中的数据。信息模式 PARTITIONS表中显示 所有特定于分区的列NULL
。
由于DROP TABLE删除表定义 ( .frm
) 文件,因此即使使用该选项禁用分区,此语句也适用于分区表。但是,在这种情况下,该语句不会删除与分区表关联的分区定义。因此,您应该避免删除禁用分区的分区表,或者采取措施.par
手动删除孤立文件(如果存在)。
在 MySQL 5.7 中,.par
不再为分区InnoDB
表创建分区定义 ( ) 文件。相反,分区定义存储在 InnoDB
内部数据字典中。分区定义 ( .par
) 文件继续用于分区 MyISAM
表。
该选项在 MySQL 5.7.16 中已弃用,并从 MySQL 8.0 中删除,因为在 MySQL 8.0 中,分区引擎被本机分区取代,而本机分区无法禁用。
--skip-show-database
命令行格式 | --skip-show-database |
---|---|
系统变量 | skip_show_database |
范围 | 全球的 |
动态的 | 不 |
类型 | 布尔值 |
默认值 | OFF |
此选项设置 skip_show_database控制谁有权使用该 SHOW DATABASES语句的系统变量。请参见 第 5.1.7 节“服务器系统变量”。
--skip-stack-trace
命令行格式 | --skip-stack-trace |
---|
不要写入堆栈跟踪。当您在调试器下运行mysqld时,此选项很有用。在某些系统上,您还必须使用此选项来获取核心文件。请参见 第 5.8 节“调试 MySQL”。
--slow-start-timeout=timeout
命令行格式 | --slow-start-timeout=# |
---|---|
类型 | 整数 |
默认值 | 15000 |
该选项控制Windows服务控制管理器的服务启动超时。该值是服务控制管理器在启动期间尝试终止 Windows 服务之前等待的最大毫秒数。默认值为 15000(15 秒)。如果MySQL服务启动时间过长,您可能需要增加该值。值为 0 表示没有超时。
--socket=path
命令行格式 | --socket={file_name|pipe_name} |
---|---|
系统变量 | socket |
范围 | 全球的 |
动态的 | 不 |
类型 | 细绳 |
默认值(Windows) | MySQL |
默认值(其他) | /tmp/mysql.sock |
在 Unix 上,此选项指定侦听本地连接时要使用的 Unix 套接字文件。默认值为 /tmp/mysql.sock
。如果给出此选项,服务器将在数据目录中创建文件,除非给出绝对路径名来指定不同的目录。在 Windows 上,该选项指定侦听使用命名管道的本地连接时要使用的管道名称。默认值为MySQL
(不区分大小写)。
--sql-mode=value[,value[,value...]]
命令行格式 | --sql-mode=name |
---|---|
系统变量 | sql_mode |
范围 | 全局、会话 |
动态的 | 是的 |
类型 | 放 |
默认值 | ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION |
有效值 |
|
设置SQL模式。请参见第 5.1.10 节“服务器 SQL 模式”。
MySQL安装程序可能会在安装过程中配置SQL模式。如果 SQL 模式与默认值或您期望的不同,请检查服务器在启动时读取的选项文件中的设置。
--ssl, --skip-ssl
命令行格式 | --ssl[={OFF|ON}] |
---|---|
禁用于 | skip-ssl |
类型 | 布尔值 |
默认值 | ON |
该--ssl选项指定服务器允许但不要求加密连接。默认情况下启用此选项。
--ssl可以以否定形式指定为 --skip-ssl或同义词 ( --ssl=OFF, --disable-ssl)。在这种情况下,该选项指定服务器不允许 加密连接,无论和 系统变量的设置如何 。 tls_
xxx
ssl_
xxx
有关配置服务器是否允许客户端使用 SSL 连接以及指示在何处查找 SSL 密钥和证书的更多信息,请参阅 第 6.3.1 节 “配置 MySQL 以使用加密连接”,其中还介绍了服务器自动生成证书和密钥文件的功能和自动发现。考虑至少在服务器端 设置ssl_cert和 系统变量以及在客户端设置 (或 ) 选项。ssl_key--ssl-ca--ssl-capath
--standalone
命令行格式 | --standalone |
---|---|
平台特定 | 视窗 |
仅适用于 Windows;指示 MySQL 服务器不要作为服务运行。
--super-large-pages
命令行格式 | --super-large-pages[={OFF|ON}] |
---|---|
平台特定 | 索拉里斯 |
类型 | 布尔值 |
默认值 | OFF |
MySQL 中大页面的标准使用尝试使用支持的最大大小,最多 4MB。在 Solaris 下, “超大页面”功能允许使用高达 256MB 的页面。此功能适用于最新的 SPARC 平台。--super-large-pages可以使用或 选项启用或禁用它 --skip-super-large-pages 。
--symbolic-links, --skip-symbolic-links
命令行格式 | --symbolic-links[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | ON |
启用或禁用符号链接支持。在 Unix 上,启用符号链接意味着您可以使用语句的 或 选项 MyISAM
将索引文件或数据文件链接到另一个目录。如果删除或重命名该表,其符号链接指向的文件也会被删除或重命名。请参见 第 8.12.3.2 节,“在 Unix 上使用 MyISAM 表的符号链接”。 INDEX DIRECTORY
DATA DIRECTORY
CREATE TABLE
该选项在 Windows 上没有任何意义。
--sysdate-is-now
命令行格式 | --sysdate-is-now[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | OFF |
SYSDATE()默认情况下返回它执行的时间,而不是它发生的语句开始执行的时间。这与 的行为不同NOW()。此选项导致SYSDATE()成为 的同义词NOW()。有关二进制日志记录和复制的含义的信息,请参阅第 12.7 节“日期和时间函数”和第 5.1.7 节“服务器系统变量”SYSDATE()中 的 描述 。 SET TIMESTAMP
--tc-heuristic-recover={COMMIT|ROLLBACK}
命令行格式 | --tc-heuristic-recover=name |
---|---|
类型 | 枚举 |
默认值 | OFF |
有效值 |
|
决定在手动启发式恢复中使用。
如果--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.
--temp-pool
命令行格式 | --temp-pool[={OFF|ON}] |
---|---|
已弃用 | 5.7.18 |
类型 | 布尔值 |
默认值(Linux) | ON |
默认值(其他) | OFF |
除 Linux 外,此选项将被忽略。在 Linux 上,它会导致服务器创建的大多数临时文件使用一小组名称,而不是每个新文件的唯一名称。这解决了 Linux 内核中创建许多具有不同名称的新文件的问题。按照旧的行为,Linux 似乎“泄漏”内存,因为它被分配到目录项缓存而不是磁盘缓存。
从 MySQL 5.7.18 开始,此选项已弃用并在 MySQL 8.0 中删除。
--transaction-isolation=level
命令行格式 | --transaction-isolation=name |
---|---|
系统变量(≥5.7.20) | transaction_isolation |
范围(≥5.7.20) | 全局、会话 |
动态(≥5.7.20) | 是的 |
类型 | 枚举 |
默认值 | REPEATABLE-READ |
有效值 |
|
设置默认事务隔离级别。该 level
值可以是 READ-UNCOMMITTED、 READ-COMMITTED、 REPEATABLE-READ或 SERIALIZABLE。请参见 第 13.3.6 节“SET TRANSACTION 语句”。
SET TRANSACTION还可以在运行时使用语句或通过设置 tx_isolation(或从 MySQL 5.7.20 开始, )系统变量 来设置默认事务隔离级别transaction_isolation。
--transaction-read-only
命令行格式 | --transaction-read-only[={OFF|ON}] |
---|---|
系统变量(≥5.7.20) | transaction_read_only |
范围(≥5.7.20) | 全局、会话 |
动态(≥5.7.20) | 是的 |
类型 | 布尔值 |
默认值 | OFF |
设置默认事务访问模式。默认情况下,只读模式处于禁用状态,因此模式为读/写。
要在运行时设置默认事务访问模式,请使用该 SET TRANSACTION语句或设置tx_read_only(或者,从 MySQL 5.7.20 开始, transaction_read_only)系统变量。请参见第 13.3.6 节“SET TRANSACTION 语句”。
--tmpdir=dir_name, -t
dir_name
命令行格式 | --tmpdir=dir_name |
---|---|
系统变量 | tmpdir |
范围 | 全球的 |
动态的 | 不 |
类型 | 目录名称 |
用于创建临时文件的目录路径。/tmp
如果您的默认目录所在的分区太小而无法容纳临时表,那么它可能会很有用。此选项接受以循环方式使用的多个路径。路径应在 Unix 上用冒号 ( ) 分隔,在 Windows 上 :
用分号 ( ) 分隔。;
--tmpdir可以是非永久位置,例如基于内存的文件系统上的目录或服务器主机重新启动时清除的目录。如果 MySQL 服务器充当副本,并且您使用的是非永久位置 --tmpdir,请考虑使用系统变量为副本设置不同的临时目录 slave_load_tmpdir。对于复制副本,用于复制LOAD DATA 语句的临时文件存储在此目录中,因此使用永久位置,它们可以在计算机重新启动后继续存在,尽管如果临时文件已被删除,复制现在可以在重新启动后继续。
有关临时文件存储位置的更多信息,请参见第 B.3.3.5 节“MySQL 存储临时文件的位置”。
--user={user_name|user_id}, -u {
user_name
|user_id
}
命令行格式 | --user=name |
---|---|
类型 | 细绳 |
以具有名称或数字用户 ID 的用户身份 运行mysqld服务器。(本文中的“用户”指的是系统登录帐户,而不是授权表中列出的 MySQL 用户。) user_name
user_id
当 mysqld启动 为. _ 服务器在其启动过程中更改其用户 ID,从而使其以该特定用户而不是 的身份运行 。请参阅 第 6.1.1 节“安全准则”。 root
root
为了避免用户 --user=root向 my.cnf
文件添加选项(从而导致服务器作为root
)运行的可能的安全漏洞,mysqld 仅使用指定的第一个--user 选项,并在有多个 --user选项时生成警告。/etc/my.cnf
和 中 的选项 $MYSQL_HOME/my.cnf
在命令行选项之前处理,因此建议您 --user在 和 中放入选项 /etc/my.cnf
并指定除 之外的值root
。中的选项 /etc/my.cnf
位于任何其他 --user选项之前,这确保服务器以除 root
--user,如果发现 任何其他选项,则会产生警告。
--validate-user-plugins[={OFF|ON}]
命令行格式 | --validate-user-plugins[={OFF|ON}] |
---|---|
类型 | 布尔值 |
默认值 | ON |
如果启用此选项(默认设置),服务器会检查每个用户帐户,并在发现导致帐户无法使用的情况时发出警告:
该帐户需要未加载的身份验证插件。
该帐户需要 sha256_password
身份验证插件,但服务器启动时既没有按照该插件的要求启用 SSL 也没有启用 RSA。
启用 --validate-user-plugins会减慢服务器初始化和FLUSH PRIVILEGES. 如果不需要额外的检查,可以在启动时禁用此选项以避免性能下降。
--verbose, -v
将此选项与--help 详细帮助选项一起使用。
--version,-V
显示版本信息并退出。