当你开始mysqld中描述的任何方法,都可以指定程序选项第4.2.2节“指定程序选项”.最常见的方法是在选项文件或命令行中提供选项。然而,在大多数情况下,最好确保服务器每次运行时都使用相同的选项。确保这一点的最佳方法是在选项文件中列出它们。看到第4.2.2.2节“使用选项文件”.该部分还描述了选项文件格式和语法。
mysqld从(mysqld)
而且(服务器)
组。mysqld_safe从(mysqld)
,(服务器)
,(mysqld_safe)
,(safe_mysqld)
组。mysql.server从(mysqld)
而且(mysql.server)
组。
mysqld接受许多命令选项。作为一个简短的摘要,执行以下命令:
mysqld——帮助
要查看完整的列表,使用这个命令:
mysqld——详细的帮助
列表中的一些项实际上是可以在服务器启动时设置的系统变量。可以在运行时使用显示变量
声明。一些项目显示在前面mysqld命令中不出现显示变量
输出;这是因为它们只是选项,而不是系统变量。
下面的列表显示了一些最常用的服务器选项。其他选项在其他部分描述:
影响安全性的选项:参见第6.1.4节“与安全相关的mysqld选项和变量”.
SSL-related选项:看到加密连接的命令选项.
二进制日志控制选项:参见第5.4.4节“二进制日志”.
Replication-related选项:看到第17.1.6节“复制和二进制日志选项和变量”.
加载插件(如可插入存储引擎)的选项:参见第5.6.1节“安装和卸载插件”.
特定于特定存储引擎的选项:参见第15.14节“InnoDB启动选项和系统变量”而且第16.2.1节,“MyISAM启动选项”.
有些选项控制缓冲区或缓存的大小。对于给定的缓冲区,服务器可能需要分配内部数据结构。这些结构通常从分配给缓冲区的总内存中分配,所需的空间量可能取决于平台。这意味着,当您为控制缓冲区大小的选项赋值时,实际可用的空间量可能与所赋值不同。在某些情况下,金额可能小于分配的值。也有可能是服务器向上调整一个值。例如,如果您为一个最小值为1024的选项赋值为0,则服务器将该值设置为1024。
除非另有规定,缓冲区大小、长度和堆栈大小的值都是以字节为单位给出的。
有些选项接受文件名值。除非另有指定,否则如果值是相对路径名,则默认文件位置是数据目录。若要显式指定位置,请使用绝对路径名。假设数据目录为/var/mysql/data
.如果文件值选项作为相对路径名给出,则它位于/var/mysql/data
.如果值是绝对路径名,则其位置由路径名给出。
您还可以在服务器启动时使用变量名作为选项来设置服务器系统变量的值。若要为服务器系统变量赋值,请使用窗体的选项--
.例如,var_name
=价值
——sort_buffer_size = 384
设置sort_buffer_size
变量的值为384MB。
当您为一个变量赋值时,MySQL可能会自动更正该值以保持在给定的范围内,或者如果只允许某些值,则将该值调整到最接近的允许值。
控件来限制运行时可以设置系统变量的最大值集
语句,通过使用该形式的选项指定该最大值——最大
在服务器启动。var_name
=价值
方法可以在运行时更改大多数系统变量的值集
声明。看到第13.7.6.1节“变量赋值的SET语法”.
第5.1.8节,“服务器系统变量”,提供了对所有变量的完整描述,以及在服务器启动和运行时设置它们的附加信息。有关更改系统变量的信息,请参见第5.1.1节“配置服务器”.
——帮助
,-?
命令行格式 ——帮助
-
命令行格式 ——admin-ssl[={|在}]
介绍了 8.0.21 弃用 8.0.26 类型 布尔 默认值 在
的
——admin-ssl
选项就像——ssl
选项,只不过它应用于管理连接接口而不是主连接接口。有关这些接口的信息,请参见第5.1.12.1节“连接接口”.的
——admin-ssl
选项指定服务器允许但不要求在管理接口上进行加密连接。默认情况下该选项是启用的。——admin-ssl
可以用否定形式指定为——skip-admin-ssl
或同义词(——admin-ssl =了
,——disable-admin-ssl
).在本例中,该选项指定由服务器执行不的设置,允许加密连接admin_tsl_
而且xxx
admin_ssl_
系统变量。xxx
的
——admin-ssl
选项仅在服务器启动时对管理接口是否支持加密连接有影响。它被忽略,对的操作没有影响更改实例重新加载TLS
在运行时。例如,你可以用——admin-ssl =了
启用禁用加密连接的管理接口,然后重新配置TLS并执行更改实例重新加载TLS为通道mysql_admin
在运行时启用加密连接。有关配置连接加密支持的一般信息,请参见第6.3.1节“配置MySQL使用加密连接”.该讨论是针对主连接接口编写的,但管理连接接口的参数名称是类似的。考虑设置至少
admin_ssl_cert
而且admin_ssl_key
服务器端的系统变量和——ssl-ca
(或——ssl-capath
)选项。有关管理界面的详细信息,请参见对加密连接的管理接口支持.因为默认情况下启用了对加密连接的支持,所以通常不需要指定
——admin-ssl
.从MySQL 8.0.26开始,——admin-ssl
已被弃用,并将在未来的MySQL版本中删除。如果希望禁用加密连接,可以在不指定的情况下完成——admin-ssl
否定形式。设置admin_tls_version
系统变量设置为空值,表示不支持TLS版本。例如,服务器中的这些行my.cnf
文件禁用加密连接:(mysqld) admin_tls_version = "
-
命令行格式 ——allow-suspicious-udfs[={|在}]
类型 布尔 默认值 从
此选项控制用户定义函数是否只有
xxx
符号的主要功能可以加载。默认情况下,该选项是关闭的,只有至少有一个辅助符号的udf才能被加载;这可以防止从包含合法udf以外的共享目标文件加载函数。看到UDF安全预防措施. -
命令行格式 ——ansi
使用标准(ANSI) SQL语法代替MySQL语法。要更精确地控制服务器SQL模式,请使用
——sql模式
选项。看到第1.7节,“MySQL标准遵从性”,第5.1.11节,“Server SQL模式”. ——basedir =
,dir_name
- b
dir_name
MySQL安装目录的路径。此选项设置
basedir
系统变量。服务器可执行文件在启动时确定它自己的完整路径名,并使用它所在目录的父目录作为默认路径名
basedir
价值。这反过来又使服务器能够使用它basedir
在搜索与服务器相关的信息时,例如分享
包含错误消息的目录。——character-set-client-handshake
命令行格式 ——character-set-client-handshake[={|在}]
类型 布尔 默认值 在
不要忽略客户端发送的字符集信息。若要忽略客户端信息并使用默认的服务器字符集,请使用
——skip-character-set-client-handshake
;这使得MySQL运行起来像MySQL 4.0。——chroot =
,dir_name
- r
dir_name
命令行格式 ——chroot = dir_name
类型 目录名称 把mysqld的方法在封闭环境中启动服务器
chroot ()
系统调用。这是一种推荐的安全措施。使用这个选项有些限制加载数据
而且选择……到输出文件
.-
命令行格式 ——控制台
特定于平台的 窗户 (Windows)。导致缺省错误日志目的地为控制台。这将影响基于默认目的地的自己输出目的地的日志接收器。看到第5.4.2节“错误日志”.mysqld如果使用此选项,则不关闭控制台窗口。
-
命令行格式 ——核心文件(={|在})
类型 布尔 默认值 从
写一个核心文件mysqld死亡。核心文件的名称和位置取决于系统。在Linux上,一个名为
核心。
写入进程的当前工作目录,用于mysqld是数据目录。pid
pid
表示服务器进程的进程号。在macOS上,名为核心。
是写给pid
/核心
目录中。在Solaris上,使用coreadm命令指定写入核心文件的位置以及如何命名它。对于某些系统,要获得核心文件,还必须指定
——核心文件大小
选项mysqld_safe.看到章节4.3.2,“mysqld_safe - MySQL服务器启动脚本”.在某些系统上,如Solaris,如果还使用——用户
选择。可能会有额外的限制或限制。例如,可能需要执行ulimit - c无限在启动服务器之前。查阅您的系统文档。10bet官方网站的
innodb_buffer_pool_in_core_file
变量可用于在支持该变量的操作系统上减小核心文件的大小。有关更多信息,请参见第15.8.3.7节“从核心文件中排除缓冲池页”. ——daemonize
,- d
命令行格式 ——daemonize[={|在}]
类型 布尔 默认值 从
该选项使服务器作为传统的、分叉的守护进程运行,允许它与使用systemd进行进程控制的操作系统一起工作。有关更多信息,请参见第2.5.9节“使用systemd管理MySQL服务器”.
——daemonize
是相互排斥的——初始化
而且——initialize-insecure
.方法启动服务器
——daemonize
选项,并且没有连接到tty设备,这是的默认错误日志记录选项——日志错误= " "
在没有显式日志记录选项的情况下使用,以将错误输出定向到默认日志文件。- d
是的同义词吗——daemonize
.——datadir =
,dir_name
- h
dir_name
MySQL服务器数据目录的路径。此选项设置
datadir
系统变量。参见该变量的描述。——调试(=
,debug_options
]- # (
debug_options
]命令行格式 ——调试(= debug_options)
系统变量 调试
范围 全球、会话 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值(Unix) d:师:我:啊,/ tmp / mysqld.trace
默认值(Windows) d:师:我:啊,\ mysqld.trace
如果MySQL配置了
-DWITH_DEBUG = 1
CMake选项,您可以使用此选项获取what的跟踪文件mysqld在干什么。一个典型的debug_options
字符串是d:师:啊,
.默认值是file_name
d:师:我:啊,/ tmp / mysqld.trace
在Unix和d:师:我:啊,\ mysqld.trace
在Windows上。使用
-DWITH_DEBUG = 1
配置MySQL与调试支持使您可以使用- debug = " d, parser_debug”
选项。这将导致用于处理SQL语句的Bison解析器将解析器跟踪转储到服务器的标准错误输出。通常,此输出被写入错误日志。这个选项可以被给出多次。以
+
或-
与前一个值相加或减去。例如,——调试= T
——调试= + P
将值设置为P: T
.有关更多信息,请参见第5.9.4节“DBUG包”.
-
命令行格式 ——debug-sync-timeout (= #)
类型 整数 控制是否启用用于测试和调试的“调试同步”功能。使用调试同步要求MySQL配置了
-DENABLE_DEBUG_SYNC = 1
CMake选项(见第2.9.7节“MySQL源配置选项”).如果没有编译“调试同步”,则此选项不可用。该选项值是以秒为单位的超时。默认值为0,表示禁用“调试同步”。要启用它,请指定一个大于0的值;此值也成为各个同步点的默认超时。如果该选项没有指定值,则超时设置为300秒。有关“调试同步”功能以及如何使用同步点的说明,请参见MySQL内部:测试同步.
-
命令行格式 ——时区=名字
类型 字符串 设置服务器默认时区。此选项设置全局
time_zone
系统变量。如果不指定此选项,则默认时区与系统时区相同(由system_time_zone
系统变量。 ——defaults-extra-file =
file_name
读取该选项文件在全局选项文件之后,但(在Unix上)在用户选项文件之前。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,它是相对于当前目录解释的。如果使用该选项,则必须是命令行上的第一个选项。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
只读取给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,它是相对于当前目录解释的。例外:即使
——defaults-file
,mysqld读取mysqld-auto.cnf
.请注意如果使用该选项,则该选项必须是命令行上的第一个选项,除非服务器是用
——defaults-file
而且——安装
(或——install-manual
)选项,——安装
(或——install-manual
)必须是第一名。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
不仅要读通常的选项组,还要读具有通常名称和后缀的组
str
.例如,mysqld正常读取(mysqld)
组。如果该选项为——defaults-group-suffix = _other
,mysqld还读(mysqld_other)
组。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
——early-plugin-load =
plugin_list
命令行格式 ——early-plugin-load = plugin_list
类型 字符串 默认值 空字符串
该选项告诉服务器在加载强制内置插件之前和在存储引擎初始化之前加载哪些插件。如果多个
——early-plugin-load
给出了选项,但只有最后一个适用。选项值是一个以分号分隔的列表
plugin_library
而且的名字
=
plugin_library
值。每一个plugin_library
是包含插件代码的库文件的名称吗的名字
要加载的插件的名称。如果一个插件库没有前面的任何插件名,服务器将加载该插件库中的所有插件。使用前面的插件名,服务器只从库中加载命名的插件。控件命名的目录中查找插件库文件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-insecure
,指定的插件——early-plugin-load
不加载。如果服务器运行
——帮助
,指定的插件——early-plugin-load
加载但未初始化。此行为确保插件选项显示在帮助消息中。InnoDB
表空间加密依赖MySQL Keyring进行加密密钥管理,为了方便存储引擎初始化,必须在初始化存储引擎之前加载要使用的Keyring插件InnoDB
加密表的恢复。例如,管理员需要keyring_file
在启动时加载的插件应该使用——early-plugin-load
使用适当的选项值(例如keyring_file.so
在Unix和类Unix系统上keyring_file.dll
在Windows上)。和有关信息。
InnoDB
表空间加密,看到第15.13节“InnoDB数据静止加密”.有关插件加载的一般信息,请参见第5.6.1节“安装和卸载插件”.请注意对于MySQL Keyring,此选项仅在使用Keyring插件管理密钥存储库时使用。如果密钥库管理使用密匙环组件而不是插件,则使用清单文件指定组件加载;看到第6.4.4.2节“密匙环组件安装”.
——exit-info [=
,旗帜
]- t [
旗帜
]命令行格式 ——exit-info(=旗帜)
类型 整数 这是不同标志的位掩码,您可以使用它来调试mysqld服务器。除非您知道,否则不要使用此选项完全它所做的!
-
命令行格式 ——外部锁(={|在})
类型 布尔 默认值 从
启用外部锁定(系统锁定),默认情况下是禁用的。如果在一个系统上使用此选项
lockd
不完全工作(如Linux),容易吗mysqld死锁。若要显式禁用外部锁定,请使用
——skip-external-locking
.外部锁定只影响
MyISAM
表的访问。有关更多信息,包括可以和不能使用它的条件,请参见第8.11.5节“外部锁定”. -
在每条SQL语句之后,将所有更改刷新(同步)到磁盘。通常,MySQL只在每个SQL语句之后将所有更改写入磁盘,并让操作系统处理同步到磁盘的操作。看到B.3.3.3节“如果MySQL一直崩溃怎么办”.
请注意如果
——平
时,值flush_time
无所谓而变来flush_time
对冲水行为没有影响。 -
命令行格式 ——gdb(={|在})
类型 布尔 默认值 从
安装中断处理程序
信号情报
(需要停止mysqld与C ^
设置断点)并禁用堆栈跟踪和核心文件处理。看到章节5.9.1.4,“在gdb下调试mysqld”.在Windows上,此选项还会抑制用于实现
重新启动
语句:fork使一个进程充当另一个进程的监视器,而另一个进程充当服务器。但是,分叉使得确定要附加到的服务器进程以进行调试变得更加困难,因此要用——广东发展银行
抑制分叉。对于以此选项开始的服务器,重新启动
只是退出,不重新启动。在调试环境中,
——无显示器
可用于抑制分叉监视进程。 ——初始化
,-我
命令行格式 ——初始化(={|在})
类型 布尔 默认值 从
该选项用于初始化MySQL安装,方法是创建data目录并填充
mysql
系统模式。有关更多信息,请参见第2.10.1节“初始化数据目录”.当服务器启动时
——初始化
控件命名的任何文件中允许的语句的某些功能不可用init_file
系统变量。有关更多信息,请参见该变量的描述。此外,disabled_storage_engines
系统变量没有影响。的
——ndbcluster
选项与。一起使用时被忽略——初始化
.——初始化
是相互排斥的——daemonize
.-我
是的同义词吗——初始化
.-
命令行格式 ——initialize-insecure[={|在}]
类型 布尔 默认值 从
该选项用于初始化MySQL安装,方法是创建data目录并填充
mysql
系统模式。这个选项意味着——初始化
.有关更多信息,请参见该选项的描述和第2.10.1节“初始化数据目录”. ——innodb
xxx
设置选项
InnoDB
存储引擎。的InnoDB
选项列于第15.14节“InnoDB启动选项和系统变量”.-
命令行格式 ——安装(service_name)
特定于平台的 窗户 (仅限Windows)将服务器安装为Windows服务,在Windows启动时自动启动。默认服务名称为
MySQL
如果没有service_name
价值。有关更多信息,请参见第2.3.4.8节“将MySQL作为Windows服务启动”.请注意参数启动服务器
——defaults-file
而且——安装
选项,——安装
必须放在第一位。 ——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
必须放在第一位。-
命令行格式 ——语言=名字
弃用 是的,使用 lc-messages-dir
而不是系统变量 语言
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 目录名称 默认值 /usr/local/mysql/share/mysql/english/
用于错误消息的语言。
lang_name
可以作为语言名称,也可以作为安装语言文件的目录的完整路径名称。看到第10.12节“设置错误消息语言”.——lc-messages-dir
而且——lc-messages
应该用而不是——语言
,它已被弃用(并作为同义词处理——lc-messages-dir
).你应该预料到——语言
选项将在未来的MySQL版本中删除。 -
命令行格式 ——大页面(={|在})
系统变量 large_pages
范围 全球 动态 没有 SET_VAR
提示应用没有 特定于平台的 Linux 类型 布尔 默认值 从
一些硬件/操作系统体系结构支持大于默认值(通常为4KB)的内存页。这种支持的实际实现取决于底层硬件和操作系统。由于Translation Lookaside Buffer (TLB) miss减少,执行大量内存访问的应用程序可以通过使用大页面获得性能改进。
MySQL支持Linux实现的大页面支持(在Linux中称为HugeTLB)。看到第8.12.3.2节“启用大页面支持”.关于Solaris对大页面的支持,请参阅
——super-large-pages
选择。——大页面
默认禁用。 -
命令行格式 ——lc-messages =名字
系统变量 lc_messages
范围 全球、会话 动态 是的 SET_VAR
提示应用没有 类型 字符串 默认值 en_US
用于错误消息的区域设置。默认值是
en_US
.服务器将参数转换为语言名并将其与的值结合——lc-messages-dir
生成错误消息文件的位置。看到第10.12节“设置错误消息语言”. -
命令行格式 ——lc-messages-dir = dir_name
系统变量 lc_messages_dir
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 目录名称 错误消息所在的目录。服务器将该值与的值一起使用
——lc-messages
生成错误消息文件的位置。看到第10.12节“设置错误消息语言”. -
命令行格式 ——本地服务
(Windows)
——本地服务
选项将使服务器使用LocalService
具有有限系统权限的Windows帐户。如果两个——defaults-file
而且——本地服务
在服务名称后面给出,它们可以是任何顺序。看到第2.3.4.8节“将MySQL作为Windows服务启动”. -
将默认错误日志目的地设置为命名文件。这将影响基于默认目的地的自己输出目的地的日志接收器。看到第5.4.2节“错误日志”.
如果选项没有文件名,那么Unix和类Unix系统上的默认错误日志目的地是一个文件名为
在数据目录中。Windows上的默认目标是相同的,除非host_name
.err——pid文件
选项指定。在这种情况下,文件名是带有后缀的PID文件名.err
在数据目录中。如果该选项命名了一个文件,则默认目标是该文件(带有
.err
如果名称没有后缀,则添加后缀),位于数据目录下,除非指定了绝对路径名以指定不同的位置。如果错误日志输出不能重定向到错误日志文件,则会发生错误并导致启动失败。
-
命令行格式 ——log-isam [= file_name]
类型 文件名称 记录所有
MyISAM
此文件的更改(仅在调试时使用MyISAM
). -
命令行格式 ——log-raw[={|在}]
系统变量(≥8.0.19) log_raw
范围(≥8.0.19) 全球 动态(≥8.0.19) 是的 SET_VAR
提示应用(≥8.0.19)没有 类型 布尔 默认值 从
写入常规查询日志、慢查询日志和二进制日志的某些语句中的密码由服务器重写,而不是以纯文本的形式出现。方法启动服务器,可以抑制常规查询日志的密码重写
——log-raw
选择。此选项可能用于诊断目的,以查看服务器接收到的语句的确切文本,但出于安全原因,不建议用于生产使用。如果安装了查询重写插件,则
——log-raw
选项对语句日志记录的影响如下:有关更多信息,请参见第6.1.2.3节“密码和日志记录”.
-
命令行格式 ——log-short-format[={|在}]
类型 布尔 默认值 从
如果慢查询日志已激活,则向慢查询日志记录较少的信息。
-
命令行格式 ——log-tc = file_name
类型 文件名称 默认值 tc.log
内存映射事务协调器日志文件的名称(用于在禁用二进制日志时影响多个存储引擎的XA事务)。默认名称为
tc.log
.如果没有给出完整路径名,则在data目录下创建文件。此选项未使用。 -
命令行格式 ——log-tc-size = #
类型 整数 默认值 6 *页面大小
最小值 6 *页面大小
最大值(64位平台) 18446744073709551615
最大值(32位平台) 4294967295
内存映射事务协调器日志的大小(以字节为单位)。默认值和最小值是页面大小的6倍,且必须是页面大小的倍数。
-
命令行格式 ——memlock[={|在}]
类型 布尔 默认值 从
锁住mysqld进程在内存中。如果您遇到操作系统引起的问题,此选项可能会有帮助mysqld交换到磁盘。
——memlock
的系统上工作mlockall ()
系统调用;这包括Solaris,大多数使用2.4或更高内核的Linux发行版,可能还有其他Unix系统。在Linux系统上,您可以判断是否如此mlockall ()
(因此这个选项)是通过检查是否在系统中定义它来支持的mman.h
文件,是这样的:Shell > grep mlockall /usr/include/sys/ manman .h
如果
mlockall ()
是否支持,您应该在前面命令的输出中看到如下内容:extern int mlockall (int __flags) __THROW;
重要的使用此选项可能需要将服务器运行为
根
,出于安全考虑,这通常不是一个好主意。看到第6.1.5节“如何以普通用户运行MySQL”.在Linux和其他系统上,您可以避免将服务器运行为
根
通过改变limits.conf
文件。中关于memlock限制的说明第8.12.3.2节“启用大页面支持”.的系统上不可使用此选项
mlockall ()
系统调用;如果你这样做,mysqld很可能在您试图启动它时退出。 -
命令行格式 ——myisam-block-size = #
类型 整数 默认值 1024
最小值 1024
最大值 16384
要使用的块大小
MyISAM
索引页。 不要读取任何选项文件。如果从选项文件中读取未知选项导致程序启动失败,
——已
可用于防止它们被读取。如果使用该选项,则必须是命令行上的第一个选项。有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
-
命令行格式 ——no-dd-upgrade[={|在}]
弃用 8.0.16 类型 布尔 默认值 从
请注意此选项在MySQL 8.0.16版本中已弃用。它被
——升级
选项,该选项提供对数据字典和服务器升级行为的更精细控制。防止MySQL服务器启动过程中自动升级数据字典表。该选项通常用于在将现有安装升级到新MySQL版本后启动MySQL服务器,这可能包括对数据字典表定义的更改。
当
——no-dd-upgrade
,并且服务器发现其期望的数据字典版本与存储在数据字典本身中的版本不同,启动失败,并提示数据字典升级被禁止的错误;[ERROR] [MY-011091] [Server]命令行选项'——no_dd_upgrade'禁止数据字典升级。[ERROR] [MY-010020] [Server]数据字典初始化失败。
在正常启动期间,将服务器的数据字典版本与存储在数据字典中的版本进行比较,以确定是否应该升级数据字典表定义。如果需要并支持升级,服务器将创建具有更新定义的数据字典表,将持久化的元数据复制到新表中,原子地用新表替换旧表,并重新初始化数据字典。如果不需要升级,则继续启动而不更新数据字典表。
-
命令行格式 ——无显示器(={|在})
介绍了 8.0.12 特定于平台的 窗户 类型 布尔 默认值 从
(Windows)。该选项将抑制用于实现
重新启动
语句:fork使一个进程充当另一个进程的监视器,而另一个进程充当服务器。对于以此选项开始的服务器,重新启动
只是退出,不重新启动。 -
命令行格式 ——old-style-user-limits[={|在}]
类型 布尔 默认值 从
启用老式的用户限制。在MySQL 5.0.3之前,帐户资源限制是为用户连接的每台主机单独计算的,而不是按帐户行计算
用户
表)。看到第6.2.20节“设置帐户资源限制”. ——performance-schema-xxx
配置性能架构选项。有关详细信息,请参见第27.14节“性能模式命令选项”.
-
命令行格式 ——plugin-load = plugin_list
系统变量 plugin_load
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 字符串 这个选项告诉服务器在启动时加载指定的插件。如果多个
——plugin-load
给出了选项,但只有最后一个适用。可以使用指定要加载的其他插件——plugin-load-add
选项。选项值是一个以分号分隔的列表
plugin_library
而且的名字
=
plugin_library
值。每一个plugin_library
是包含插件代码的库文件的名称吗的名字
要加载的插件的名称。如果一个插件库没有前面的任何插件名,服务器将加载该插件库中的所有插件。使用前面的插件名,服务器只从库中加载命名的插件。控件命名的目录中查找插件库文件plugin_dir
系统变量。例如,如果插件命名为
myplug1
而且myplug2
是否包含在插件库文件中myplug1.so
而且myplug2.so
,使用此选项执行早期插件加载:mysqld——plugin-load = " myplug1 = myplug1.so; myplug2 = myplug2.so”
引号括在参数值周围,否则一些命令解释器会解释分号(
;
)作为一个特殊的角色。(例如,Unix shell将其视为命令终止符。)的单个调用加载每个命名插件mysqld只有。重启后,插件不会被加载,除非
——plugin-load
再次使用。这是相反的安装插件
,它向mysql.plugins
表,以便每次正常启动服务器时加载插件。在正常的启动顺序中,服务器通过读取
mysql.plugins
系统表。参数启动服务器——skip-grant-tables
选项中注册的插件mysql.plugins
表未加载且不可用。——plugin-load
使插件即使加载——skip-grant-tables
是给定的。——plugin-load
还允许在启动时加载无法在运行时加载的插件。有关插件加载的其他信息,请参见第5.6.1节“安装和卸载插件”.
——plugin-load-add =
plugin_list
命令行格式 ——plugin-load-add = plugin_list
系统变量 plugin_load_add
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 字符串 此选项补充
——plugin-load
选择。——plugin-load-add
向启动时加载的插件集中添加一个或多个插件。参数格式与for相同——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
有关插件加载的其他信息,请参见第5.6.1节“安装和卸载插件”.
指定一个与服务器插件相关的选项。例如,许多存储引擎可以作为插件构建,对于这种引擎,可以用
——插件
前缀。因此,——innodb-file-per-table
选择InnoDB
可以指定为——plugin-innodb-file-per-table
.对于可启用或禁用的布尔选项,请使用
——跳过
也支持前缀和其他可选格式(参见第4.2.2.4节,“程序选项修饰符”).例如,——skip-plugin-innodb-file-per-table
禁用innodb-file-per-table
.的基本原理
——插件
前缀的作用是,如果与内置服务器选项有名称冲突,它可以明确地指定插件选项。例如,如果一个插件作者给一个插件命名”sql”并实现”模式”选项,选项名称可能是——sql模式
,这将与同名的内置选项冲突。在这种情况下,将解析对冲突名称的引用,以便使用内置选项。为了避免歧义,用户可以将插件选项指定为——plugin-sql-mode
.的使用——插件
建议为插件选项加上前缀,以避免任何歧义问题。——港口=
,port_num
- p
port_num
监听TCP/IP连接时使用的端口号。在Unix和类Unix系统上,端口号必须为1024或更高,除非服务器是由
根
操作系统的用户。将该选项设置为0将使用默认值。-
命令行格式 ——port-open-timeout = #
类型 整数 默认值 0
在某些系统上,当服务器停止时,TCP/IP端口可能不会立即可用。如果服务器在之后迅速重新启动,它重新打开端口的尝试可能会失败。该选项指示如果TCP/IP端口无法打开,服务器应该等待多长时间才能恢复空闲状态。默认是不等待。
打印程序名称和它从选项文件中获得的所有选项。密码值被屏蔽。如果使用该选项,则它必须是命令行上的第一个选项,除非它可以紧接着使用
——defaults-file
或——defaults-extra-file
.有关此选项和其他选项文件选项的更多信息,请参见第4.2.2.3节,“影响选项文件处理的命令行选项”.
-
命令行格式 ——删除(service_name)
特定于平台的 窗户 (仅限Windows)删除MySQL Windows服务。默认服务名称为
MySQL
如果没有service_name
价值。有关更多信息,请参见第2.3.4.8节“将MySQL作为Windows服务启动”. -
命令行格式 ——safe-user-create[={|在}]
类型 布尔 默认值 从
如果启用了该选项,则用户不能使用
格兰特
语句,除非用户具有插入
特权的mysql.user
系统表或表中的任何列。如果您希望用户能够创建具有该用户有权授予的权限的新用户,您应该授予该用户以下权限:GRANT INSERT(user) ON mysql。用户的user_name“@”host_name”;
这确保了用户不能直接更改任何特权列,而是必须使用
格兰特
语句向其他用户授予特权。 -
命令行格式 ——skip-grant-tables[={|在}]
类型 布尔 默认值 从
该选项影响服务器启动顺序:
——skip-grant-tables
控件中的授权表mysql
系统模式,从而完全不使用特权系统启动。这使得任何能够访问服务器的人都可以访问不受限制地访问所有数据库.因为启动服务器时
——skip-grant-tables
禁用身份验证检查,在这种情况下,服务器也通过启用禁用远程连接skip_networking
.使服务器以。启动
——skip-grant-tables
要在运行时加载授予表,请执行特权刷新操作,该操作可以通过以下方式完成:问题一个MySQL
冲洗的特权
语句连接到服务器后。执行一个mysqladmin flush-privileges或mysqladmin重载从命令行执行命令。
特权刷新也可能作为启动后执行的其他操作的结果隐式发生,从而导致服务器开始使用授权表。例如,如果服务器在启动顺序期间执行升级,则会刷新特权。
——skip-grant-tables
禁用登录失败跟踪和临时帐户锁定,因为这些功能依赖于授权表。看到第6.2.15节“密码管理”.——skip-grant-tables
对象中注册的某些其他对象将导致服务器不加载mysql
系统模式:使用以下工具安装的计划事件
创建事件
并在事件
数据字典表。插件安装使用
安装插件
并在mysql.plugin
系统表。导致插件即使在使用时也被加载
——skip-grant-tables
,可以使用——plugin-load
或——plugin-load-add
选择。用户定义函数(udf)使用
创建函数
并在mysql.func
系统表。
——skip-grant-tables
做不在组件启动期间抑制加载。——skip-grant-tables
导致disabled_storage_engines
系统变量没有影响。
-
命令行格式 ——skip-host-cache
禁止使用内部主机缓存,以实现更快的名称到ip解析。当缓存被禁用时,每次客户端连接时,服务器都会执行DNS查找。
使用
——skip-host-cache
类似于设置host_cache_size
系统变量为0,但是host_cache_size
更加灵活,因为它还可以用于在运行时调整大小、启用或禁用主机缓存,而不仅仅是在服务器启动时。使用以下命令启动服务器
——skip-host-cache
不阻止运行时对值的更改host_cache_size
,但这些更改没有任何效果,并且缓存不会重新启用host_cache_size
设置为大于0。有关主机缓存如何工作的更多信息,请参见第5.1.12.3节“DNS查找和主机缓存”.
禁用
InnoDB
存储引擎。在本例中,因为默认的存储引擎是InnoDB
,服务器不会启动,除非您也使用——default-storage-engine
而且——default-tmp-storage-engine
将默认设置为一些其他引擎的永久和临时
表。的
InnoDB
存储引擎不能被禁用,且——skip-innodb
选项已弃用,没有任何效果。它的使用结果是一个警告。希望这个选项在将来的MySQL版本中被删除。-
命令行格式 ——skip-new
这个选项禁用(过去认为的)新的、可能不安全的行为。它的结果是:
delay_key_write =了
,concurrent_insert =没有
,automatic_sp_privileges =了
.也会使优化表
被映射到ALTER TABLE
对于存储引擎优化表
不支持。 -
命令行格式 ——skip-show-database
系统变量 skip_show_database
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 布尔 默认值 从
此选项设置
skip_show_database
控件允许谁使用的系统变量显示数据库
声明。看到第5.1.8节,“服务器系统变量”. -
命令行格式 ——skip-stack-trace
不要写堆栈跟踪。该选项在运行时非常有用mysqld在一个调试器。在某些系统上,还必须使用此选项来获取核心文件。看到第5.9节,“调试MySQL”.
-
命令行格式 ——slow-start-timeout = #
类型 整数 默认值 15000
此选项控制Windows服务控制管理器的服务启动超时时间。该值是服务控制管理器在启动期间尝试杀死windows服务之前等待的最大毫秒数。缺省值是15000(15秒)。如果MySQL服务启动时间过长,您可能需要增加这个值。值为0表示没有超时。
-
命令行格式 ——套接字= {file_name | pipe_name}
系统变量 套接字
范围 全球 动态 没有 SET_VAR
提示应用没有 类型 字符串 默认值(Windows) MySQL
默认值(其他) / tmp / mysql.sock
在Unix上,此选项指定在监听本地连接时使用的Unix套接字文件。默认值为
/ tmp / mysql.sock
.如果指定了该选项,服务器将在数据目录中创建文件,除非指定了绝对路径名以指定不同的目录。在Windows上,该选项指定在监听使用命名管道的本地连接时要使用的管道名。默认值为MySQL
(不区分大小写)。 -
命令行格式 ——sql模式=名字
系统变量 sql_mode
范围 全球、会话 动态 是的 SET_VAR
提示应用是的 类型 集 默认值 Only_full_group_by strict_trans_tables no_zero_in_date no_zero_date error_for_division_by_zero no_engine_substitution
有效值 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模式。看到第5.1.11节,“Server SQL模式”.
请注意MySQL安装程序在安装过程中可能会配置SQL模式。
如果SQL模式与默认模式或您期望的模式不同,请检查服务器在启动时读取的选项文件中的设置。
-
命令行格式 ——ssl(={|在})
弃用 8.0.26 残疾的 skip-ssl
类型 布尔 默认值 在
的
——ssl
选项指定服务器允许但不要求在主连接接口上进行加密连接。默认情况下该选项是启用的。类似的选项,
——admin-ssl
,就像——ssl
,只不过它适用于管理连接接口而不是主连接接口。有关这些接口的信息,请参见第5.1.12.1节“连接接口”.——ssl
可以用否定形式指定为——skip-ssl
或同义词(——ssl =了
,——禁用ssl
).在本例中,该选项指定由服务器执行不的设置,允许加密连接tls_
而且xxx
ssl_
系统变量。xxx
的
——ssl
选项仅在服务器启动时对服务器是否支持加密连接有影响。它被忽略,对的操作没有影响更改实例重新加载TLS
在运行时。例如,你可以用——ssl =了
启动禁用加密连接的服务器,然后重新配置TLS并执行更改实例重新加载TLS
在运行时启用加密连接。有关配置服务器是否允许客户端使用SSL连接以及指示在何处查找SSL密钥和证书的详细信息,请参见第6.3.1节“配置MySQL使用加密连接”,它还描述了证书和密钥文件自动生成和自动发现的服务器功能。考虑设置至少
ssl_cert
而且ssl_key
服务器端的系统变量和——ssl-ca
(或——ssl-capath
)选项。因为默认情况下启用了对加密连接的支持,所以通常不需要指定
——ssl
.从MySQL 8.0.26开始,——ssl
已被弃用,并将在未来的MySQL版本中删除。如果希望禁用加密连接,可以在不指定的情况下完成——ssl
否定形式。设置tls_version
系统变量设置为空值,表示不支持TLS版本。例如,服务器中的这些行my.cnf
文件禁用加密连接:(mysqld) tls_version = "
-
命令行格式 ——独立
特定于平台的 窗户 仅在Windows上可用;指示MySQL服务器不作为服务运行。
-
命令行格式 ——super-large-pages[={|在}]
特定于平台的 Solaris 类型 布尔 默认值 从
MySQL中大页面的标准使用尝试使用支持的最大大小,最多4MB。在Solaris中,”超级大页面”特性允许使用最大256MB的页面。该特性可用于最近的SPARC平台。方法可以启用或禁用它
——super-large-pages
或——skip-super-large-pages
选择。 -
命令行格式 ——符号链接(={|在})
弃用 是的 类型 布尔 默认值 从
启用或禁用符号链接支持。在Unix上,启用符号链接意味着您可以链接一个
MyISAM
索引文件或数据文件到另一个目录索引目录
或数据目录
选择的创建表
声明。如果删除或重命名表,则其符号链接所指向的文件也将被删除或重命名。看到第8.12.2.2节“在Unix上为MyISAM表使用符号链接”.请注意符号链接支持,以及
——符号链接
选项,已弃用;你应该期望它在MySQL的未来版本中被删除。此外,该选项默认是禁用的。相关的have_symlink
系统变量也已弃用;希望它在MySQL的未来版本中被删除。这个选项在Windows上没有意义。
-
命令行格式 ——sysdate-is-now[={|在}]
类型 布尔 默认值 从
SYSDATE ()
默认情况下,返回它执行的时间,而不是发生它的语句开始执行的时间。的行为不同于现在()
.这个选项会导致SYSDATE ()
成为…的同义词现在()
.有关二进制日志记录和复制的含义的信息,请参见的说明SYSDATE ()
在第12.7节“日期和时间函数”和设置时间戳
在第5.1.8节,“服务器系统变量”. ——tc-heuristic-recover ={提交|回滚}
命令行格式 ——tc-heuristic-recover =名字
类型 枚举 默认值 从
有效值 从
提交
回滚
在手动启发式恢复中使用的决定。
如果一个
——tc-heuristic-recover
选项,则无论手动启发式恢复是否成功,服务器都退出。在具有多个存储引擎的系统上,能够进行两阶段提交
回滚
选项不安全,导致恢复停止,并出现以下错误:[ERROR]——tc-heuristic-recover回滚策略在拥有多个两阶段提交存储引擎的系统上是不安全的。流产崩溃恢复。
-
命令行格式 ——事务隔离=名字
系统变量 transaction_isolation
范围 全球、会话 动态 是的 SET_VAR
提示应用没有 类型 枚举 默认值 可重复读取
有效值 读未提交
读取提交
可重复读取
可序列化的
设置默认事务隔离级别。的
水平
值可以是读未提交
,读取提交
,可重复读取
,或可序列化的
.看到第13.3.7节“SET TRANSACTION语句”.方法还可以在运行时设置默认事务隔离级别
设置事务
语句或通过设置transaction_isolation
系统变量。 -
命令行格式 ——transaction-read-only[={|在}]
系统变量 transaction_read_only
范围 全球、会话 动态 是的 SET_VAR
提示应用没有 类型 布尔 默认值 从
设置默认的事务访问模式。缺省情况下,禁用只读模式,即为读写模式。
若要在运行时设置默认事务访问模式,请使用
设置事务
语句或设置transaction_read_only
系统变量。看到第13.3.7节“SET TRANSACTION语句”. ——tmpdir =
,dir_name
- t
dir_name
要用于创建临时文件的目录的路径。如果是默认设置,可能会很有用
/ tmp
目录位于分区上,该分区太小,无法容纳临时表。该选项接受以循环方式使用的多个路径。路径应以冒号分隔(:
)及分号字符(;
在Windows上)。——tmpdir
可以是非永久位置,例如基于内存的文件系统上的目录,或者在服务器主机重新启动时清除的目录。如果MySQL服务器作为一个副本,并且您正在使用一个非永久位置——tmpdir
方法为副本设置不同的临时目录slave_load_tmpdir
系统变量。对于副本,用于复制的临时文件加载数据
语句存储在这个目录中,因此有了一个永久的位置,它们可以在计算机重新启动后存活下来,尽管现在在重新启动后,如果临时文件已被删除,复制可以继续。有关临时文件存储位置的详细信息,请参见B.3.3.5节“MySQL在哪里存储临时文件”.
-
命令行格式 ——升级=值
介绍了 8.0.16 类型 枚举 默认值 汽车
有效值 汽车
没有一个
最小的
力
此选项控制服务器是否以及如何在启动时执行自动升级。自动升级分为两个步骤:
步骤1:数据字典升级。
这一步升级:
中的数据字典表
mysql
模式。如果数据字典的实际版本低于当前期望版本,则升级数据字典。如果它不能这样做,或者被阻止这样做,服务器就不能运行。性能架构及
INFORMATION_SCHEMA
.
步骤2:服务器升级。
此步骤包括所有其他升级任务。如果现有安装数据的MySQL版本低于服务器的预期,必须进行升级:
中的系统表
mysql
模式(剩余的非数据字典表)。的
sys
模式。用户模式。
升级步骤1和步骤2请参见第2.11.3节“MySQL升级过程升级了什么”.
这些
——升级
允许的选项值:汽车
服务器会自动升级它发现的任何过时的东西(步骤1和2)
——升级
没有显式指定。没有一个
服务器在启动过程中不执行自动升级步骤(跳过步骤1和步骤2)。因为该选项值阻止了数据字典的升级,所以如果发现数据字典过期,服务器将带错误退出:
[ERROR] [MY-013381] [Server]服务器关闭,因为需要升级,但命令行选项'——upgrade=NONE'禁止。[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine [ERROR] [MY-010020] [Server] Data Dictionary初始化失败。
最小的
服务器升级数据字典、性能架构和
INFORMATION_SCHEMA
注意,在使用此选项进行升级之后,无法启动Group Replication,因为复制内部所依赖的系统表没有更新,而且在其他区域也可能明显减少功能。力
服务器升级数据字典、性能架构和
INFORMATION_SCHEMA
此外,服务器会强制升级其他所有内容(步骤2)。使用这个选项,服务器启动的时间可能会更长,因为服务器会检查所有模式中的所有对象。力
如果服务器认为不需要执行步骤2操作,则强制执行这些操作非常有用。例如,您可能认为系统表丢失或损坏,并希望强制进行修复。
下表总结了服务器对每个选项值所采取的操作。
选项值 服务器是否执行步骤1? 服务器是否执行步骤2? 汽车
如果有必要的话 如果有必要的话 没有一个
没有 没有 最小的
如果有必要的话 没有 力
如果有必要的话 是的 ——用户= {
,user_name
|user_id
}- u {
user_name
|user_id
}命令行格式 ——用户=名字
类型 字符串 运行mysqld服务器作为具有名称的用户
user_name
或数字用户IDuser_id
.(”用户”在这里指的是系统登录帐户,而不是授权表中列出的MySQL用户。)这个选项是强制性的当开始mysqld作为
根
.服务器在其启动序列中更改其用户ID,导致它以该特定用户而不是作为根
.看到第6.1.1节“保安指引”.以避免用户添加
——用户=根
选择一个my.cnf
文件(从而使服务器以根
),mysqld只使用第一个——用户
选项指定,如果有多个则产生警告——用户
选项。选项/etc/my.cnf
而且$ MYSQL_HOME / my.cnf
在命令行选项之前处理,因此建议您输入——用户
选项/etc/my.cnf
并指定一个非根
.的选项/etc/my.cnf
比其他的更早发现吗——用户
选项,它确保服务器作为用户而不是根
,如果有其他结果,则会发出警告——用户
选择是发现。-
命令行格式 ——validate-config[={|在}]
介绍了 8.0.16 类型 布尔 默认值 从
验证服务器启动配置。如果没有发现错误,服务器将终止,退出码为0。如果发现错误,服务器将显示诊断消息并终止,退出代码为1。还可能显示警告和信息消息,具体取决于
log_error_verbosity
值,但不会立即产生验证终止或退出码为1。有关更多信息,请参见第5.1.3节,“服务器配置验证”. ——validate-user-plugins[={|在}]
命令行格式 ——validate-user-plugins[={|在}]
类型 布尔 默认值 在
如果启用了此选项(默认),服务器将检查每个用户帐户,如果发现可能导致帐户不可用的条件,则产生警告:
帐户需要一个身份验证插件,但没有加载。
帐户要求
sha256_password
或caching_sha2_password
认证插件,但服务器启动时没有启用SSL或RSA插件所要求的。
启用
——validate-user-plugins
减慢服务器初始化和冲洗的特权
.如果不需要额外的检查,可以在启动时禁用此选项,以避免性能下降。方法使用此选项
——帮助
详细帮助选项。——版本
,- v
显示版本信息并退出。