当前位置: 首页 > news >正文

深入理解 MySQL 中的日志类型及其应用场景

目录标题

  • MySQL 中的日志类型这么多,它们都有哪些作用?
  • 1.错误日志(Error Log)
  • 2.事务日志
    • 2.1 InnoDB Redo Log(重做日志)
    • 2.2 InnoDB Undo Log (撤消日志)
  • 3.查询日志(General Query Log)
  • 4.慢查询日志 (Slow Query Log)
  • 5.二进制日志(Binary Log)
  • 6.中继日志 (Relay Log)
  • 总结一下

MySQL 中的日志类型这么多,它们都有哪些作用?

我经常在面试别人的时候,特别喜欢问一些生产性的问题。例如:如果数据库偶发性地变慢,你该如何排查?再例如,数据库主从复制突然延时增加,你又怎么排查呢?

问这种问题最主要的原因是想考验一下面试者在工作中处理问题的能力,这种能力只能够是在足够了解一个事物原理的基础上才能拥有。并且在日常的工作当中或者在面试大厂的时候,也经常会遇到类似的问题。

那么遇到类似的问题该怎么解决呢?今天我们就来聊一聊这个话题。

通常,遇到一些未知的问题(类似于上述的两个问题)时,我们的第一反应是查看日志。那么这个时候问题又来了:该看什么日志呢?

在 MySQL 数据库当中,有很多种日志,每一种日志的作用都不尽相同。

1.错误日志(Error Log)

首先,我们介绍一下 MySQL 数据库中的错误日志,顾名思义主要是用来记录 MySQL 数据库中出现的错误或者警告的,下面我们来看一下它的位置。

mysql> show variables like '%log_error%';
+---------------------+---------------------+
| Variable_name       | Value               |
+---------------------+---------------------+
| log_error           | /var/log/mysqld.log |
+---------------------+---------------------+
3 rows in set (0.13 sec)

其中,/var/log/mysqld.log 就是 MySQL 数据库错误日志的路径。

如果,要想将错误信息写入到错误日志中,还受 MySQL 数据库中 log_warnings 参数的影响,该参数有三个参数,分别是 0、1 和大于 1 三个参数。下面我们将来证明这三个参数的作用,分别如下。

  • log_warnings 的结果为 0 时,不记录警告日志。

— 设置为0

mysql> set GLOBAL log_warnings=0; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

— 查看设置结果

mysql> show variables like ‘%log_warnings%;+———————-+———-+ | Variable_name | Value |+———————-+———-+ | log_warnings  | 0     |+———————-+———-+ 1 row in set (0.00 sec)

— 使用明文密码,制造一个警告日志

 [root@dxd ~]# mysql -uroot -pTest123! -h172.17.16.2

— 查看错误日志

 [root@dxd ~]# cat /var/log/mysqld.log [root@dxd ~]#

我们可以看到,没有记录警告日志。

  • log_warnings 的结果为 1 时,记录错误日志,并且将警告日志也记录到错误日志之中。

— 设置为 1

[root@dxd ~]# vim /etc/my.cnf log_warnings=1

— 查看设置结果

mysql> show variables like ‘%log_warnings%; 
+———————-+———-+ | Variable_name | Value | 
+———————-+———-+ | log_warnings  | 1     |
+———————
http://www.lryc.cn/news/474510.html

相关文章:

  • 群控系统服务端开发模式-应用开发-上传配置功能开发
  • stm32——GPIO开发
  • layui 自定义验证单选框必填
  • Spring 设计模式之策略模式
  • 苹果开发 IOS 证书生成步骤
  • DDR2 SDRAM(五)初始化
  • Python工具箱系列(五十七)
  • 数据智能驱动金融策略优化:民锋智能分析技术的应用
  • 1009:带余除法
  • Jmeter实际应用
  • C++基础(11.AVL树的实现)
  • c# 抽象方法 虚函数 使用场景
  • 大数据安全方案 验证
  • 电脑软件:推荐一款免费且实用的电脑开关机小工具
  • php反序列化靶场随笔分析
  • 动态规划 - 编辑距离
  • 力扣——113. 路径总和
  • C02S04-Ubuntu基本使用
  • C语言 | Leetcode C语言题解之第525题连续数组
  • Qml-Transition的使用
  • Notepad++检索包含多个关键字的行
  • C语言:水仙花树,要求三位以上的N位整数每位的N次方等于数本身,全部输出出来
  • 金融贷款口子超市V2源码 Thinkphp开发的贷款和超市平台源码(亲测源码含安装视频教程)
  • redis的三种客户端
  • 边缘计算【智能+安全检测】系列教程--agx orin解决RTC时间问题
  • 数据库动态扩容:Java实现与技术策略
  • Golang | Leetcode Golang题解之第525题连续数组
  • 低代码架构浅析
  • mysql字段是datetime如何按照小时来统计
  • nacos快速启动