微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL 服务器中的 6 种日志类型

在这里插入图片描述


大家好!我是只谈技术不剪发的 Tony 老师。今天我们来谈谈 MysqL 服务器中各种日志文件的作用以及相关配置选项。

MysqL 提供了一套完整的服务器日志体系,包含了多种日志类型,可以帮助我们查找、解决系统问题和优化数据库性能

日志类型 记录信息
错误日志 启动、运行、停止 MysqLd 时出现的问题
通用查询日志 建立的客户端连接和客户端提交的语句
查询日志 执行时间超过 long_query_time认为 10 秒)的查询
二进制日志 修改数据的语句,也用于复制
中继日志 从复制主节点接收到的数据变更
DDL日志 元数据日志,DDL 语句执行的元数据操作

认情况下,服务器的日志文件都位于数据目录(datadir)中。

错误日志

MysqL 错误日志(error log)记录了 MysqLd 启动和停止的相关信息,同时还记录了服务器在启动、停止以及运行期间发生的诊断消息,例如错误、警告和通知等。例如,当 MysqLd 发现某个表需要执行自动检查或修复时,它会向错误日志中写入一条消息。

认安装时,错误日志通常在配置文件(my.cnf 或者 my.ini)中 MysqLd 部分的 log-error 配置项进行设置;利用 MysqL 系统变量 log_error 可以查看错误日志的文件名:

MysqL> show variables like 'log_error';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/MysqLd.log |
+---------------+---------------------+
1 row in set (0.01 sec)

如果查询结果为 stderr,表示标准错误输出,也就是终端或控制台窗口。

MysqL 8.0 开始,错误日志采用了 MysqL 组件体系结构,由执行日志过滤和写入的多个组件构成,系统变量 log_error_services 配置了用于生成错误日志的组件。当 log_error 系统变量指定了认的错误日志文件之后,日志写入器组件可能基于该值设置自己的输出文件,或者使用单独的输出文件

  • 如果 log_error 设置为 stderr,认的错误日志将会输出到控制台;日志写入器组件 log_sink_internal、log_sink_json 以及 log_sink_test 都会输出到控制台,但是 log_sink_syseventlog 的输出目标为系统日志文件,而不是 log_error。
  • 如果 log_error 设置为系统文件认的错误日志将会输出到该文件;日志写入器组件 log_sink_internal 和 log_sink_test 都会输出到该文件;log_error_services 中配置的多个 log_sink_json 将会使用文件加上带编号的 .NN.json 文件:file_name.00.json、file_name.01.json 等;log_sink_syseventlog 的输出目标为系统日志文件,而不是 log_error。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐