• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • MySQL服务器命令行工具选项

    启动mysqld服务器时,可以使用“指定程序选项”中描述的任何方法来指定程序选项。最常见的方法是在选项文件或命令行中提供选项。但是,在大多数情况下,希望确保服务器每次运行都使用相同的选项。确保这一点的最佳方法是在选项文件中列出它们。请参见“使用选项文件”。该部分还描述了选项文件格式和语法。

    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输出中;这是因为它们仅是选项,而不是系统变量。

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

    • 影响安全性的选项:请参见“与安全性相关的mysqld选项和变量”。
    • 与SSL相关的选项:请参阅“加密连接的命令选项”。
    • 二进制日志控制选项:请参见“MySQL服务器二进制日志”。
    • 与复制相关的选项:请参见“复制和二进制日志记录选项和变量”。
    • 加载诸如可插拔存储引擎之类的插件的选项:请参见“MySQL服务器插件”。
    • 特定于存储引擎的选项:请参见“ InnoDB启动选项和系统变量”和“ MyISAM启动选项”。

    一些选项控制缓冲区或缓存的大小。对于给定的缓冲区,服务器可能需要分配内部数据结构。这些结构通常是从分配给缓冲区的总内存中分配的,所需的空间量可能取决于平台。这意味着,当您将值分配给控制缓冲区大小的选项时,实际可用空间量可能与分配的值不同。在某些情况下,金额可能小于分配的值。服务器也可能向上调整一个值。例如,如果您将选项0的最小值指定为1024,则服务器会将其设置为1024。

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

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

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

    当给变量赋值时,MySQL可能会自动将其校正为保持在给定范围内,或者如果只允许某些值,则将其调整为最接近的允许值。

    要使用该SET语句限制可以在运行时将系统变量设置为的最大值,请在服务器启动时使用格式的选项来指定此最大值。--maximum-var_name=value

    您可以使用以下SET语句在运行时更改大多数系统变量的值。请参见“变量分配的SET语法”。

    “服务器系统变量”提供了所有变量的完整说明,以及在服务器启动和运行时设置它们的其他信息。有关更改系统变量的信息,请参见“配置服务器”。

    • --help-?

      属性
      命令行格式--help

      显示简短帮助消息并退出。同时使用--verbose--help选项,以参见完整的消息。

    • --allow-suspicious-udfs

      属性
      命令行格式--allow-suspicious-udfs[={OFF|ON}]
      类型布尔型
      默认值OFF

      此选项控制是否xxx可以加载仅具有主功能符号的用户定义功能。默认情况下,该选项处于关闭状态,并且只有具有至少一个辅助符号的UDF可以加载;这样可以防止尝试从共享目标文件(而不是包含合法UDF的文件)中加载功能。请参阅 UDF安全预防措施。

    • --ansi

      属性
      命令行格式--ansi

      使用标准(ANSI)SQL语法而不是MySQL语法。为了更精确地控制服务器SQL模式,请使用--sql-mode选项。请参见“ MySQL标准遵从性”和“服务器SQL模式”。

    • --basedir=dir_name-b dir_name
    PropertyValue
    Command-Line Format--basedir=dir_name
    System Variablebasedir
    ScopeGlobal
    DynamicNo
    SET_VAR Hint AppliesNo
    TypeDirectory name
    Default Valueparent of mysqld installation directory
    • MySQL安装目录的路径。此选项设置basedir系统变量。

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

    • --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 DATASELECT ... INTO OUTFILE

    --console

    属性
    命令行格式--console
    特定于平台Windows

    (仅Windows。)使默认错误日志目标为控制台。这会影响将自己的输出目标基于默认目标的日志编写器。请参见“MySQL服务器错误日志”。如果使用该选项,mysqld不会关闭控制台窗口。

    --console--log-error如果两者都给出,则优先。

    • --core-file

      属性
      命令行格式--core-file[={OFF|ON}]
      类型布尔型
      默认值OFF

      如果mysqld死了,请写一个核心文件。核心文件的名称和位置取决于系统。在Linux上,将名为的核心文件写入进程的当前工作目录,对于mysqld而言,该数据目录为数据目录。代表服务器进程的进程ID。在macOS上,名为的核心文件被写入该目录。在Solaris上,使用coreadm命令指定在哪里写入核心文件以及如何命名它。core.pidpidcore.pid/cores

      对于某些系统,要获取核心文件,还必须指定mysqld_safe--core-file-size选项。请参见“mysqld_safe-MySQL服务器启动脚本”。在某些系统(例如Solaris)上,如果您还使用该选项,则不会获得核心文件。可能存在其他限制或限制。例如,可能有必要在启动服务器之前执行ulimit -c unlimited。请查阅系统文档。--user

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

    • --daemonize-D

      属性
      命令行格式--daemonize[={OFF|ON}]
      类型布尔型
      默认值OFF

      此选项使服务器作为传统的分支守护程序运行,从而使其可以与使用systemd进行过程控制的操作系统一起使用。

      --daemonize--initialize和互斥--initialize-insecure

      如果使用该--daemonize选项启动服务器并且未将其连接到tty设备,--log-error=""则在没有显式日志记录选项的情况下使用默认错误日志记录选项,将错误输出定向到默认日志文件。

      -D是的同义词--daemonize

    --datadir=dir_name,-h dir_name

    PropertyValue
    Command-Line Format--datadir=dir_name
    System Variabledatadir
    ScopeGlobal
    DynamicNo
    SET_VAR Hint AppliesNo
    TypeDirectory name
    • MySQL服务器数据目录的路径。此选项设置datadir系统变量。请参阅该变量的描述。
    • --debug[=debug_options]-#[debug_options]

      属性
      命令行格式--debug[=debug_options]
      系统变量debug
      范围Global, Session
      动态Yes
      SET_VAR提示适用No
      类型String
      预设值(Windows)d:t:i:O,\mysqld.trace
      预设值(Unix)d:t:i:o,/tmp/mysqld.trace

      如果MySQL配置了CMake选项,则可以使用此选项获取mysqld正在执行的跟踪文件。典型的字符串是。缺省是在Unix和Windows上。-DWITH_DEBUG=1debug_optionsd:t:o,file_named:t:i:o,/tmp/mysqld.traced:t:i:O,\mysqld.trace

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

      可以多次给出该选项。以前一个值开头 +-加或从前一个值减去的值。例如,将值设置为。--debug=T--debug= +PP:T

      有关更多信息,请参见“ DBUG软件包”。

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

      属性
      命令行格式--debug-sync-timeout[=#]
      类型Integer

      控制是否启用用于测试和调试的“调试同步”工具。使用Debug Sync要求使用CMake选项配置MySQL (请参见“ MySQL源代码配置选项”)。如果未编译调试同步,则此选项不可用。选项值是以秒为单位的超时。默认值为0,这将禁用“调试同步”。要启用它,请指定一个大于0的值。该值也成为各个同步点的默认超时。如果给出的选项没有值,则超时设置为300秒。-DENABLE_DEBUG_SYNC=1

      有关“调试同步”工具以及如何使用同步点的说明,请参见《 MySQL内部知识:测试同步》。

    • --default-time-zone=timezone

      属性
      命令行格式--default-time-zone=name
      类型String

      设置默认服务器时区。此选项设置全局time_zone系统变量。如果未指定此选项,则默认时区与系统时区相同(由system_time_zone系统变量的值决定)。

    • --defaults-extra-file=file_name

      在全局选项文件之后但在用户选项文件之前(在Unix上)读取此选项文件。如果该文件不存在或无法访问,则发生错误。file_name如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。如果使用它,它必须是命令行上的第一个选项。

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

    • --defaults-file=file_name

      只读给定的选项文件。如果该文件不存在或无法访问,则发生错误。file_name如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。

      例外:即使这样--defaults-filemysqld也会读取mysqld-auto.cnf

      注意

      如果使用了命令行,则它必须是命令行上的第一个选项,但是如果服务器是使用--defaults-file nd --install(或--install-manual)选项启动的,则--install(or --install-manual)必须是第一个选项。

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

    • --defaults-group-suffix=str

      不仅阅读常规选项组,而且阅读具有常规名称和后缀的组str。例如,mysqld通常读取[mysqld]组。如果--defaults-group-suffix=_other给出了该选项,mysqld也会读取该[mysqld_other]组。

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

    • --early-plugin-load=plugin_list

      属性
      命令行格式--early-plugin-load=plugin_list
      类型String
      默认值empty string

      此选项告诉服务器在加载强制性内置插件之前和存储引擎初始化之前要加载哪些插件。如果--early-plugin-load给出多个选项,则仅使用最后一个。

      选项值是和值的分号分隔列表。每个都是要加载的插件的名称,也是包含插件代码的库文件的名称。如果命名了一个没有任何前面的插件名称的插件库,则服务器会将所有插件加载到该库中。服务器在系统变量命名的目录中查找插件库文件。name=plugin_libraryplugin_librarynameplugin_libraryplugin_dir

      例如,如果命名为myplug1myplug2具有库文件myplug1.so和的插件myplug2.so,请使用此选项执行早期插件加载:

      shell>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。此行为可确保在帮助消息中显示插件选项。

      默认--early-plugin-load值为空。要加载keyring_file插件,您必须使用--early-plugin-load带有非空值的显式选项。

      InnoDB表空间加密功能依赖于keyring_file插件加密密钥管理和keyring_file插件前必须存储引擎初始化加载,以便InnoDB对加密表的恢复。希望keyring_file在启动时加载插件的管理员应使用适当的非空选项值(例如,keyring_file.so在Unix和类似Unix的系统上以及keyring_file.dll在Windows上)。

      有关InnoDB表空间加密的信息,请参见“ InnoDB静态数据加密”。有关插件加载的一般信息,请参见“MySQL服务器插件”。

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

      属性
      命令行格式--exit-info[=flags]
      类型Integer

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

    • --external-locking

      属性
      命令行格式--external-locking[={OFF|ON}]
      类型布尔型
      默认值OFF

      启用默认情况下禁用的外部锁定(系统锁定)。如果在lockd无法完全正常运行的系统(例如Linux)上使用此选项,则mysqld容易死锁。

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

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

    • --flush

      属性
      命令行格式--flush[={OFF|ON}]
      系统变量flush
      范围Global
      动态Yes
      SET_VAR提示适用No
      类型布尔型
      默认值OFF

      在每个SQL语句之后刷新(同步)对磁盘的所有更改。通常,MySQL仅在每个SQL语句之后才将所有更改写入磁盘,并让操作系统处理与磁盘的同步。请参见第B.4.3.3节“如果MySQL继续崩溃,该怎么办”。

      注意

      如果--flush指定,则的值flush_time无关紧要,并且更改flush_time对刷新行为没有影响。

    • --gdb

      属性
      命令行格式--gdb[={OFF|ON}]
      类型布尔型
      默认值OFF

      安装中断处理程序SIGINT(需要停止mysqld的^C设置断点),并且禁止堆栈跟踪和核心文件处理。请参见“在gdb下调试mysqld”。

      在Windows上,此选项还禁止执行该RESTART语句的分支:分支使一个进程可以充当另一个进程的监视器,而另一个进程充当服务器。但是,派生使得确定要调试的服务器进程更加困难,因此启动服务器时会--gdb抑制派生。对于使用此选项启动的服务器,RESTART只需退出而不重启。

      在非调试设置中,--no-monitor可用于禁止派生监视进程。

    • --initialize-I

      属性
      命令行格式--initialize[={OFF|ON}]
      类型布尔型
      默认值OFF

      该选项用于通过创建数据目录并填充mysql系统模式中的表来初始化MySQL安装。有关更多信息,请参见“初始化数据目录”。

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

      --ndbcluster与一起使用时,该选项将被忽略--initialize

      --initialize与互斥--daemonize

      -I是的同义词--initialize

    • --initialize-insecure

      属性
      命令行格式--initialize-insecure[={OFF|ON}]
      类型布尔型
      默认值OFF

      该选项用于通过创建数据目录并填充mysql系统模式中的表来初始化MySQL安装。此选项暗示--initialize。有关更多信息,请参见该选项的描述和“初始化数据目录”。

      --initialize-insecure与互斥--daemonize

    • --innodb-xxx

      设置InnoDB存储引擎的选项。这些InnoDB选项在“ InnoDB启动选项和系统变量”中列出。

    • --install[service_name]

      属性
      命令行格式--install[service_name]
      特定于平台Windows

      (仅Windows)将服务器安装为Windows服务,该服务在Windows启动期间自动启动。默认服务名称是MySQL如果没有service_name给出值。有关更多信息,请参见“将MySQL作为Windows服务启动”。

      注意

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

    • --install-manual[service_name]

      属性
      命令行格式--install-manual[service_name]
      特定于平台Windows

      (仅Windows)将服务器安装为必须手动启动的Windows服务。Windows启动期间它不会自动启动。默认服务名称是MySQL如果没有service_name给出值。有关更多信息,请参见“将MySQL作为Windows服务启动”。

      注意

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

    • --language=lang_name,-L lang_name

      属性
      命令行格式--language=name
      不推荐使用是;用lc-messages-dir代替
      系统变量language
      范围Global
      动态No
      SET_VAR提示适用No
      类型目录名
      默认值/usr/local/mysql/share/mysql/english/

      错误消息使用的语言。lang_name可以指定为语言名称,也可以指定为安装语言文件的目录的完整路径名。请参见“设置错误消息语言”。

      --lc-messages-dir并且--lc-messages应使用,而不要使用--language,后者已弃用(并作为的别名处理--lc-messages-dir)。该--language选项将在将来的MySQL版本中删除。

    • --large-pages

      属性
      命令行格式--large-pages[={OFF|ON}]
      系统变量large_pages
      范围Global
      动态No
      SET_VAR提示适用No
      特定于平台Linux
      类型布尔型
      默认值OFF

      某些硬件/操作系统体系结构支持的内存页大于默认值(通常为4KB)。此支持的实际实现取决于底层硬件和操作系统。由于减少了转换后备缓冲区(TLB)丢失,因此执行大量内存访问的应用程序可以通过使用大页面来提高性能。

      MySQL支持大页面支持的Linux实现(在Linux中称为HugeTLB)。请参见“启用大页面支持”。对于大页面的Solaris支持,请参见该--super-large-pages选项的说明。

      --large-pages默认情况下处于禁用状态。

    • --lc-messages=locale_name

      属性
      命令行格式--lc-messages=name
      系统变量lc_messages
      范围Global, Session
      动态
      SET_VAR提示适用No
      类型string
      默认值en_US

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

    • --lc-messages-dir=dir_name

      属性
      命令行格式--lc-messages-dir=dir_name
      系统变量lc_messages_dir
      范围Global
      动态No
      SET_VAR提示适用No
      类型目录名

      错误消息所在的目录。服务器使用该值和的值--lc-messages来生成错误消息文件的位置。请参见“设置错误消息语言”。

    • --local-service

      属性
      命令行格式--local-service

      (仅Windows)--local-service服务名称后的选项使服务器使用LocalService具有受限系统特权的Windows帐户运行。如果在服务名称后都给出--defaults-file--local-service,则它们可以按任何顺序排列。请参见“将MySQL作为Windows服务启动”。

    • --log-error[=file_name]

      属性
      命令行格式--log-error[=file_name]
      系统变量log_error
      范围Global
      动态No
      SET_VAR提示适用No
      类型文件名

      将默认错误日志目标设置为命名文件。这会影响将自己的输出目标基于默认目标的日志编写器。请参见“MySQL服务器错误日志”。

      如果该选项未命名文件,则Unix和类似Unix的系统上的默认错误日志目标是host_name.err在数据目录中命名的文件。Windows上的默认目标是相同的,除非--pid-file指定了该选项。在这种情况下,文件名是PID文件的基本名称,.err在数据目录中带有后缀。

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

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

      在Windows上,如果同时指定--console--log-error两者,则优先。在这种情况下,默认错误日志目标是控制台而不是文件。

    • --log-isam[=file_name]

      属性
      命令行格式--log-isam[=file_name]
      类型文件名

      将所有MyISAM更改记录到该文件(仅在调试时使用MyISAM)。

    • --log-raw

      属性
      命令行格式--log-raw[={OFF|ON}]
      系统变量(>= 8.0.19)log_raw
      范围(>= 8.0.19)Global
      动态(>= 8.0.19)
      SET_VAR提示适用(>= 8.0.19)No
      类型布尔型
      默认值OFF

      服务器将重写某些写入普通查询日志,慢速查询日志和二进制日志的语句中的密码,以使它们不会以纯文本形式出现。通过使用--log-raw选项启动服务器,可以抑制常规查询日志的密码重写。此选项对于诊断目的可能有用,它可以参见服务器接收到的确切的语句文本,但是出于安全原因,不建议将其用于生产。

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

      • 如果不使用--log-raw,服务器将记录查询重写插件返回的语句。这可能与收到的声明有所不同。
      • 使用--log-raw,服务器记录收到的原始语句。

    • --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=#
      类型Integer
      默认值6 * page size
      最低值6 * page size
      最大值(64位平台)18446744073709551615
      最大值(32位平台)4294967295

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

    • --memlock

      属性
      命令行格式--memlock[={OFF|ON}]
      类型布尔型
      默认值OFF

      mysqld进程锁定在内存中。如果您遇到操作系统导致mysqld交换到磁盘的问题,则此选项可能会有所帮助。

      --memlock在支持mlockall()系统调用的系统上工作;这包括Solaris,使用2.4或更高版本内核的大多数Linux发行版,以及其他Unix系统。在Linux系统上,可以mlockall()通过检查是否在系统mman.h文件中进行了定义来判断是否支持(因此支持此选项),如下所示:

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

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

      extern int mlockall (int __flags) __THROW;
      
      重要

      使用此选项可能要求您以身份运行服务器root,出于安全考虑,通常不是一个好主意。请参见“如何以普通用户身份运行MySQL”。

      在Linux以及其他系统上,可以像root更改limits.conf文件一样避免运行服务器。请参见“启用大页面支持”中有关门锁限制的注释。

      您不得尝试在不支持mlockall()系统调用的系统上使用此选项;如果这样做,mysqld在您尝试启动它时很可能会崩溃。

    • --myisam-block-size=N

      属性
      命令行格式--myisam-block-size=#
      类型Integer
      默认值1024
      最低值1024
      最大值16384

      用于MyISAM索引页的块大小。

    • --no-defaults

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

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

    • --no-dd-upgrade

      属性
      命令行格式--no-dd-upgrade[={OFF|ON}]
      不推荐使用8.0.16
      类型布尔型
      默认值OFF
      注意

      从MySQL 8.0.16开始不推荐使用此选项。它被--upgrade选件取代,该选件可以更好地控制数据字典和服务器升级行为。

      防止在MySQL服务器启动过程中自动升级数据字典表。在将现有安装就地升级到较新的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

      属性
      命令行格式--no-monitor[={OFF|ON}]
      介绍了8.0.12
      特定于平台windows
      类型布尔型
      默认值OFF

      (仅Windows)。此选项禁止执行该RESTART语句的派生:派生使一个进程可以充当另一个进程的监视程序,而另一个进程充当服务器。对于使用此选项启动的服务器,RESTART只需退出而不重启。

      --no-monitor在MySQL 8.0.12之前不可用。该--gdb选项可用作解决方法。

    • --old-style-user-limits

      属性
      命令行格式--old-style-user-limits[={OFF|ON}]
      类型布尔型
      默认值OFF

      启用旧式用户限制。(在MySQL 5.0.3之前,帐户资源限制是针对用户所连接的每个主机而不是user表中的帐户行分别计算的。)请参见“设置帐户资源限制”。

    • --performance-schema-xxx

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

    • --plugin-load=plugin_list

      属性
      命令行格式--plugin-load=plugin_list
      系统变量plugin_load
      范围Global
      动态No
      SET_VAR提示适用No
      类型string

      此选项告诉服务器在启动时加载命名的插件。如果--plugin-load给出多个选项,则仅使用最后一个。可以使用--plugin-load-add选项指定要加载的其他插件。

      选项值是和值的分号分隔列表。每个都是要加载的插件的名称,也是包含插件代码的库文件的名称。如果命名了一个没有任何前面的插件名称的插件库,则服务器会将所有插件加载到该库中。服务器在系统变量命名的目录中查找插件库文件。name=plugin_libraryplugin_librarynameplugin_libraryplugin_dir

      例如,如果命名为myplug1myplug2具有库文件myplug1.so和的插件myplug2.so,请使用此选项执行早期插件加载:

      shell>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还可以使插件在启动时加载,而在运行时无法加载。

      有关插件加载的更多信息,请参见“MySQL服务器插件”。

    • --plugin-load-add=plugin_list

      属性
      命令行格式--plugin-load-add=plugin_list
      系统变量plugin_load_add
      范围Global
      动态No
      SET_VAR提示适用No
      类型string

      此选项是对--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
      

      有关插件加载的更多信息,请参见“MySQL服务器插件”。

    • --plugin-xxx

      指定与服务器插件有关的选项。例如,许多存储引擎可以构建为插件,并且对于此类引擎,可以使用--plugin前缀指定它们的选项。因此,的--innodb-file-per-table选项InnoDB可以指定为--plugin-innodb-file-per-table

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

      --plugin前缀的基本原理是,如果与内置服务器选项发生名称冲突,则可以明确指定插件选项。例如,如果插件编写者将插件命名为“ sql ”并实现“ mode ”选项,则选项名称可能为--sql-mode,这将与同名的内置选项发生冲突。在这种情况下,可以使用内置选项来解决对冲突名称的引用。为了避免歧义,用户可以将plugin选项指定为--plugin-sql-mode。使用--plugin建议使用插件选项前缀,以避免任何歧义问题。

    • --port=port_num-P port_num

      属性
      命令行格式--port=port_num
      系统变量port
      范围Global
      动态No
      SET_VAR提示适用No
      类型Integer
      默认值3306
      最低值0
      最大值65535

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

    • --port-open-timeout=num

      属性
      命令行格式--port-open-timeout=#
      类型Integer
      默认值0

      在某些系统上,当服务器停止时,TCP / IP端口可能不会立即变为可用。如果服务器此后迅速重新启动,则其重新打开端口的尝试可能会失败。此选项指示如果无法打开,服务器应等待TCP / IP端口空闲多少秒。默认为不等待。

    • --print-defaults

      打印程序名称及其从选项文件中获取的所有选项。密码值被屏蔽。如果使用了此选项,则必须是命令行上的第一个选项,但可以在--defaults-file或之后立即使用--defaults-extra-file

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

    • --remove[service_name]

      属性
      命令行格式--remove[service_name]
      特定于平台windows

      (仅Windows)删除MySQL Windows服务。默认服务名称是MySQL如果没有service_name给出值。有关更多信息,请参见“将MySQL作为Windows服务启动”。

    • --safe-user-create

      属性
      命令行格式--safe-user-create[={OFF|ON}]
      类型布尔型
      默认值OFF

      如果启用此选项,则GRANT除非用户具有系统表或表中的任何列的INSERT特权,否则用户无法使用该语句创建新的MySQL用户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 语句。
        • 从命令行执行mysqladmin flush-privilegesmysqladmin reload命令。

        启动后执行的其他操作也可能隐式发生特权刷新,从而导致服务器开始使用授权表。例如,mysql_upgrade在升级过程中清除特权。

      • 除了导致启动序列不加载授权表之外,还--skip-grant-tables导致服务器不加载存储在mysql系统架构中的某些其他对象:与INSTALL PLUGIN语句,预定事件和用户定义函数(UDF)一起安装的插件。要使插件仍然被加载,请使用--plugin-load--plugin-load-add选项。

        --skip-grant-tables在启动过程中不会抑制服务器组件的加载。

      • --skip-grant-tables禁用登录失败跟踪和临时帐户锁定,因为这些功能取决于授权表。请参见“帐户密码管理”。
      • --skip-grant-tables使disabled_storage_engines系统变量无效。

      由于启动服务器--skip-grant-tables会禁用身份验证检查,因此在这种情况下,服务器也会通过启用来禁用远程连接skip_networking

    • --skip-host-cache

      属性
      命令行格式--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,也不会重新启用缓存。

      有关主机缓存如何工作的更多信息,请参见“ DNS查找优化和主机缓存”。

    • --skip-innodb

      禁用InnoDB存储引擎。在这种情况下,因为默认存储引擎为InnoDB,否则服务器将不会启动,除非您还为永久数据库和表使用--default-storage-engine并将--default-tmp-storage-engine默认值设置为其他引擎TEMPORARY

      InnoDB存储引擎不能禁用,--skip-innodb选项已被弃用,没有任何效果。它的使用会导致警告。在将来的MySQL版本中将删除此选项。

    • --skip-new

      属性
      命令行格式--skip-new

      此选项禁用(过去被认为是)新的可能不安全的行为。这导致了这些设置:delay_key_write=OFFconcurrent_insert=NEVER utomatic_sp_privileges=OFF。它还会导致OPTIMIZE TABLE映射到不支持的ALTER TABLE存储引擎OPTIMIZE TABLE

    • --skip-show-database

      属性
      命令行格式--skip-show-database
      系统变量skip_show_database
      范围Global
      动态No
      SET_VAR提示适用No

      此选项设置skip_show_database控制谁被允许使用该SHOW DATABASES语句的系统变量。请参见“服务器系统变量”。

    • --skip-stack-trace

      属性
      命令行格式--skip-stack-trace

      不要写堆栈跟踪。在调试器下运行mysqld时,此选项很有用。在某些系统上,您还必须使用此选项来获取核心文件。请参见“调试和移植MySQL”。

    • --slow-start-timeout=timeout

      属性
      命令行格式--slow-start-timeout=#
      类型Integer
      默认值15000

      此选项控制Windows服务控制管理器的服务启动超时。该值是服务控制管理器在尝试在启动过程中终止Windows服务之前等待的最大毫秒数。默认值为15000(15秒)。如果MySQL服务启动时间过长,则可能需要增加此值。值为0表示没有超时。

    • --socket=path

      属性
      命令行格式--socket={file_name|pipe_name}
      系统变量socket
      范围Global
      动态No
      SET_VAR提示适用No
      类型string
      默认值(其他)/tmp/mysql.sock
      预设值(Windows)MySQL

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

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

      属性
      命令行格式--sql-mode=name
      系统变量sql_mode
      范围Global, Session
      动态
      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模式。请参见“服务器SQL模式”。

      注意

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

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

    • --ssl*

      以开头的选项--ssl指定是否允许客户端使用SSL连接,并指示在何处查找SSL密钥和证书。请参阅加密连接的命令选项。

    • --standalone

      属性
      命令行格式--standalone
      特定于平台windows

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

    • --super-large-pages

      属性
      命令行格式--super-large-pages[={OFF|ON}]
      特定于平台Solaris
      类型布尔型
      默认值OFF

      MySQL中大页面的标准用法尝试使用所支持的最大大小,最大为4MB。在Solaris下,“超大页面”功能允许使用最大256MB的页面。此功能可用于最新的SPARC平台。可以使用--super-large-pages--skip-super-large-pages选项启用或禁用它。

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

      属性
      命令行格式--symbolic-links[={OFF|ON}]
      不推荐使用
      类型布尔型
      默认值OFF

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

      注意

      符号链接支持以及--symbolic-links控制它的选项已被弃用,并将在以后的MySQL版本中删除。此外,默认情况下禁用此选项。相关的have_symlink系统变量也已被弃用,并将在MySQL的未来版本中删除。

      在Windows上,此选项没有任何意义。

    • --sysdate-is-now

      属性
      命令行格式--sysdate-is-now[={OFF|ON}]
      类型布尔型
      默认值OFF

      SYSDATE()默认情况下,它返回执行时间,而不是发生它的语句开始执行的时间。这与的行为不同NOW()。此选项SYSDATE()将成为的别名NOW()。有关二进制日志和复制的影响的信息,请参阅说明SYSDATE()在 12.6节,“日期和时间函数”和SET TIMESTAMP在“服务器系统变量”。

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

      属性
      命令行格式--tc-heuristic-recover=name
      类型列举
      默认值COMMIT
      有效值

      COMMIT

      ROLLBACK

      启发式恢复过程中使用的决策类型。要使用此选项,必须安装两个或更多支持XA事务的存储引擎。

    • --transaction-isolation=level

      属性
      命令行格式--transaction-isolation=name
      系统变量transaction_isolation
      范围Global, Session
      动态
      SET_VAR提示适用No
      类型列举
      默认值REPEATABLE-READ
      有效值

      READ-UNCOMMITTED

      READ-COMMITTED

      REPEATABLE-READ

      SERIALIZABLE

      设置默认的事务隔离级别。该level值可以是READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READ,或SERIALIZABLE。请参见“ SET TRANSACTION语句”。

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

    • --transaction-read-only

      属性
      命令行格式--transaction-read-only[={OFF|ON}]
      系统变量transaction_read_only
      范围Global, Session
      动态
      SET_VAR提示适用No
      类型布尔型
      默认值OFF

      设置默认的事务访问模式。默认情况下,只读模式为禁用状态,因此该模式为读/写。

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

    • --tmpdir=dir_name-t dir_name

      属性
      命令行格式--tmpdir=dir_name
      系统变量tmpdir
      范围Global
      动态No
      SET_VAR提示适用No
      类型目录名

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

      --tmpdir可以是非永久位置,例如基于内存的文件系统上的目录或服务器主机重新启动时将清除的目录。如果MySQL服务器充当复制从属服务器,并且您使用的非永久位置--tmpdir,请考虑使用slave_load_tmpdir系统变量为从属服务器设置其他临时目录。对于复制从属服务器,用于复制LOAD DATA语句的临时文件存储在此目录中,因此具有永久位置,它们可以在计算机重新启动后幸存下来,尽管如果删除了临时文件,复制现在可以在重新启动后继续进行。

      有关临时文件的存储位置的更多信息,请参见第B.4.3.5节“ MySQL在哪里存储临时文件”。

    • --upgrade=value

      属性
      命令行格式--upgrade=value
      介绍了8.0.16
      类型列举
      默认值AUTO
      有效值

      AUTO

      NONE

      MINIMAL

      FORCE

      此选项控制服务器在启动时是否以及如何执行自动升级。自动升级包括两个步骤:

      • 步骤1:资料字典升级。

        此步骤升级:

        • 模式中的数据字典表mysql。如果实际数据字典版本低于当前预期版本,则服务器将升级数据字典。如果不能,或者被阻止,服务器将无法运行。
        • 性能架构和性能INFORMATION_SCHEMA
      • 步骤2:服务器升级。

        此步骤包括所有其他升级任务。如果现有安装数据的MySQL版本低于服务器预期的MySQL版本,则必须对其进行升级:

        • 模式中的系统表mysql(其余的非数据字典表)。
        • sys架构。
        • 用户架构。

      有关升级步骤1和2的详细信息,请参见“ 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步操作,则此操作很有用。例如,您可能认为系统表丢失或已损坏,并想强制进行维修。

      下表总结了服务器针对每个选项值采取的操作。

      期权价值服务器执行步骤1?服务器执行步骤2?
      AUTO如有需要如有需要
      NONENoNo
      MINIMAL如有需要No
      FORCE如有需要
    • --user={user_name|user_id}-u{user_name|user_id}

      属性
      命令行格式--user=name
      类型string

      以具有名称或数字用户ID的用户身份运行mysqld服务器。(在此上下文中,“用户”是指系统登录帐户,而不是授权表中列出的MySQL用户。)user_nameuser_id

      此选项强制在启动mysqld的作为root。服务器在其启动顺序期间更改其用户ID,从而使其以该特定用户而不是的身份运行root。请参见“安全准则”。

      为了避免用户--user=rootmy.cnf文件中添加选项的可能的安全漏洞(从而导致服务器以方式运行root),mysqld仅使用--user指定的第一个选项,如果有多个--user选项,则会产生警告。/etc/my.cnf$MYSQL_HOME/my.cnf中的选项在命令行选项之前进行处理,因此建议您在其中放置一个--user选项/etc/my.cnf并指定以外的其他值root。in选项可在/etc/my.cnf其他任何--user选项之前找到,以确保服务器以除以下身份之外的用户身份运行root,如果--user找到其他选项,则会发出警告。

    • --validate-config

      属性
      命令行格式--validate-config[={OFF|ON}]
      介绍了8.0.16
      类型布尔型
      默认值OFF

      验证服务器启动配置。如果未找到错误,则服务器以退出代码0终止。如果发现错误,则服务器将显示诊断消息,并以退出代码1终止。根据log_error_verbosity值,还可能显示警告和信息消息。,但不会立即终止验证或退出代码为1。有关更多信息,请参见“服务器配置验证”。

    • --verbose-v

      将此选项与选项一起使用可--help获取详细帮助。

    • --version-V

      显示版本信息并退出。