文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  默认错误日志目标配置

7.4.2.2 默认错误日志目标配置

本节介绍哪些服务器选项配置默认错误日志目标,可以是控制台或命名文件。它还指示哪些日志接收器组件将其自身的输出目标基于默认目标。

在本讨论中,“控制台” 表示 stderr,即标准错误输出。这是您的终端或控制台窗口,除非标准错误输出已重定向到其他目标。

服务器对确定默认错误日志目标的选项的解释在 Windows 和 Unix 系统上有所不同。请务必使用适合您平台的信息配置目标。服务器解释默认错误日志目标选项后,它会设置 log_error 系统变量以指示默认目标,这会影响多个日志接收器组件写入错误消息的位置。以下各节将介绍这些主题。

Windows 上的默认错误日志目标

在 Windows 上,mysqld 使用 --log-error--pid-file--console 选项来确定默认错误日志目标是控制台还是文件,如果是文件,则确定文件名。

  • 如果给出了 --console,则默认目标为控制台。(如果同时给出了 --console--log-error,则 --console 优先,并且以下关于 --log-error 的项目不适用。)

  • 如果没有给出 --log-error,或者给出但没有指定文件名,则默认目标是在数据目录中名为 host_name.err 的文件,除非指定了 --pid-file 选项。在这种情况下,文件名是在数据目录中以 .err 为后缀的 PID 文件基本名称。

  • 如果给出 --log-error 以指定文件名,则默认目标是该文件(如果名称没有后缀,则添加 .err 后缀)。文件位置在数据目录下,除非给出绝对路径名以指定其他位置。

如果默认错误日志目标是控制台,则服务器将 log_error 系统变量设置为 stderr。否则,默认目标是一个文件,服务器将 log_error 设置为文件名。

Unix 和类 Unix 系统上的默认错误日志目标

在 Unix 和类 Unix 系统上,mysqld 使用 --log-error 选项来确定默认错误日志目标是控制台还是文件,如果是文件,则确定文件名。

  • 如果没有给出 --log-error,则默认目标为控制台。

  • 如果给出 --log-error 但没有指定文件名,则默认目标是在数据目录中名为 host_name.err 的文件。

  • 如果给出 --log-error 以指定文件名,则默认目标是该文件(如果名称没有后缀,则添加 .err 后缀)。文件位置在数据目录下,除非给出绝对路径名以指定其他位置。

  • 如果在使用 mysqld_safe 启动服务器的系统上的选项文件中,在 [mysqld][server][mysqld_safe] 部分中给出了 --log-error,则 mysqld_safe 会查找并使用该选项,并将其传递给 mysqld

注意

Yum 或 APT 软件包安装通常使用服务器配置文件中的 log-error=/var/log/mysqld.log 等选项,在 /var/log 下配置错误日志文件位置。从选项中删除路径名会导致使用数据目录中的 host_name.err 文件。

如果默认错误日志目标是控制台,则服务器将 log_error 系统变量设置为 stderr。否则,默认目标是一个文件,服务器将 log_error 设置为文件名。

默认错误日志目标如何影响日志接收器

服务器解释错误日志目标配置选项后,它会设置 log_error 系统变量以指示默认错误日志目标。日志接收器组件可以根据 log_error 值设置其自身的输出目标,也可以独立于 log_error 确定其目标。

如果 log_errorstderr,则默认错误日志目标为控制台,并且根据默认目标设置其输出目标的日志接收器也会写入控制台。

  • log_sink_internallog_sink_jsonlog_sink_test:这些接收器写入控制台。即使对于可以启用多次的接收器(例如 log_sink_json)也是如此;所有实例都写入控制台。

  • log_sink_syseventlog:此接收器写入系统日志,而与 log_error 值无关。

如果 log_error 不是 stderr,则默认错误日志目标是一个文件,并且 log_error 指示文件名。根据默认目标设置其输出目标的日志接收器将根据该文件名设置输出文件命名。(接收器可以使用完全相同的名称,也可以使用其变体。)假设 log_error 值为 file_name。然后,日志接收器将按如下方式使用该名称:

  • log_sink_internallog_sink_test:这些接收器写入 file_name

  • log_sink_json:在 log_error_services 值中命名的此接收器的连续实例写入名为 file_name 加上编号为 .NN.json 的后缀的文件:file_name.00.jsonfile_name.01.json,等等。

  • log_sink_syseventlog:此接收器写入系统日志,而与 log_error 值无关。