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  /  ...  /  Default Error Log Destination Configuration

7.4.2.2 默认错误日志目标配置

本节描述了哪些服务器选项配置默认错误日志目标,可以是控制台或命名文件。它还指示哪些日志sink组件基于默认目标。

在本讨论中,控制台表示 stderr,标准错误输出。这是您的终端或控制台窗口,除非标准错误输出被重定向到不同的目标。

服务器对Windows和Unix系统的默认错误日志目标选项进行不同的解释。请确保根据您的平台配置目标。服务器解释默认错误日志目标选项后,将 log_error 系统变量设置为默认目标,这将影响多个日志sink组件写入错误消息的位置。以下部分将讨论这些主题。

Windows上的默认错误日志目标

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

  • 如果给定 --console,则默认目标是控制台。(--console 优先于 --log-error 如果两者都给定,则以下关于 --log-error 的项目不适用。)

  • 如果没有给定 --log-error,或没有命名文件,则默认目标是一个名为 主机名.err 的文件在数据目录中,除非指定了 --pid-file 选项。在那种情况下,文件名是PID文件基名加上 .err 后缀在数据目录中。

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

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

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

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

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

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

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

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

Note

Yum 或 APT 软件包安装通常会在服务器配置文件中配置错误日志文件位置,例如在/var/log下,以log-error=/var/log/mysqld.log选项。从选项中删除路径名将导致使用数据目录中的主机名.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值为文件名。那么日志接收器将使用该名称,如下所示:

  • log_sink_internallog_sink_test:这些接收器写入文件名

  • 日志沉积JSON: 连续实例中的这个sink命名在日志错误服务值中写入文件,文件名为文件名加上编号的.NN.json后缀:文件名.00.json文件名.01.json,依此类推。

  • 日志沉积系统事件日志:这个sink写入系统日志,不管日志错误值如何。