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。

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...