前言

日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 。下面分别对他们进行介绍。

查询日志

1.查看查询日志变量

查询日志即查看日志记录了所有对 MySQL 数据库请求的信息,不论这些请求是否得到了正确的执行。默认为 主机名.log

mysql> show global variables like "%gen%log%";
+------------------+------------------------------------+
| Variable_name | Value |
+------------------+------------------------------------+
| general_log | OFF |
| general_log_file | /data/mysql/mysql3306/data/ken.log |
+------------------+------------------------------------+
rows in set (0.00 sec)

2.查询日志变量详解

 log on|off:                 指定是否记录查询日志     <<< mysql5.6开始就弃用该选项
general_log: 指定是否记录查询日志
log_output none|table|file: 指定将记录到的查询保存到什么位置
file: 保存成一个文件
table: 保存成一张表
none: 不记录
general_log_file: 指定将查询日志保存成哪个文件、叫什么名

慢查询日志

1.查看慢查询日志变量

慢查询日志用来记录响应时间超过阈值的SQL语句,所以我们可以设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中。该阈值可以通过参数 slow_launch_time来设置,默认为2秒。

 mysql> show global variables like "%slow%";
+---------------------------+----------+
| Variable_name | Value |
+---------------------------+----------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | ON |
| slow_launch_time | |
| slow_query_log | ON |
| slow_query_log_file | slow.log |
+---------------------------+----------+
rows in set (0.00 sec)

2.慢查询日志变量详解

 slow_query_log on|off:  指定是否启用慢查询日志
slow_query_log_file: 指定慢查询日志文件
slow_launch_time: 指定在多长时间内没有执行完额查询是慢查询
log_output: 指定将记录到的查询保存到什么位置

错误日志

1.查看错误日志变量

错误日志文件对MySQL的启动,运行,关闭过程进行了记录。

 mysql> show global variables like "%error%";
+---------------------+--------------+
| Variable_name | Value |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| log_error | ./error.log |
| log_error_verbosity | |
| max_connect_errors | |
| max_error_count | |
| slave_skip_errors | OFF |
+---------------------+--------------+
rows in set (0.00 sec)

2.错误日志变量详解

 log_error:        指定错误日志的文件及其路径
log_warnings: 指定将哪个级别的警告日志记录到错误日志中
sql_warnings: 指定是否记录在执行sql语句时候所触发的经过信息

二进制日志

1.关于二进制日志以及二进制日志变量

二进制日志记录了对数据库执行更改的所有操作,但是不包括 select 和 show 这类操作,因为这类操作对数据本身并没有修改,如果你还想记录select和show操作,那只能使用查询日志了,而不是二进制日志。

此外,二进制还包括了执行数据库更改操作的时间和执行时间等信息。 二进制日志主要有以下几种作用 :

  • 恢复(recovery) : 某些数据的恢复需要二进制日志,如当一个数据库全备文件恢复后,我们可以通过二进制的日志进行 point-in-time 的恢复
  • 复制(replication) : 通过复制和执行二进制日志使得一台远程的 MySQL 数据库(一般是slave 或者 standby) 与一台MySQL数据库(一般为master或者primary) 进行实时同步
  • 审计(audit) :用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入攻击
 mysql> show global variables like "%bin%";
+--------------------------------------------+--------------------------------------------+
| Variable_name | Value |
+--------------------------------------------+--------------------------------------------+
| bind_address | * |
| binlog_cache_size | |
| binlog_checksum | CRC32 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_error_action | ABORT_SERVER |
| binlog_format | ROW |
| binlog_group_commit_sync_delay | |
| binlog_group_commit_sync_no_delay_count |
...

2.二进制日志变量详解

 log_bin on|off:                         也是指定是否启用二进制日志(全局的)
log_bin_basename /path/to/binlog: 指定二进制日志的文件的基名
log_bin_index /path/to/binlog.index: 指定二进制日志文件的索引文件
binlog_format row|mixex|statement: 指定基于那种方式进行记录
sync_binlog #: 指定隔多久将缓存中的信息刷新到二进制日志文件中。
-->每次提交事务,会将缓存中的内存刷新到二进制日志文件中。
7 -->默认每个sql语句是一个事务,而且默认事务会自动提交,所以,默认的性能很差
max_binlog_size #: 指定二进制日志文件的上限,超过上限回滚动
max_binlog_cache_size #: 指定二进制日志缓存空间大小,空间被填满,会自动滚动
sql_log_off on|off: 是否将一般的查询操作记录到二进制日志中
sql_log_bin on|off: 也是指定是否启用二进制日志(会话级别)
log_bin_trust_function_creators on|off: 指定是否允许创建可能导致不安全的函数

3.查看二进制日志文件

对于二进制日志文件来说,不像错误日志文件,慢查询日志文件那样用cat,vim等命令可以查看,它需要通过 MySQL 提供的工具 mysqlbinlog

 [root@ken ~]# mysqlbinlog /data/mysql/mysql3306/logs/mysql-bin.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at
# :: server id end_log_pos CRC32 0x27fde4a9 Start: binlog v , server v 5.7.-log created :: at startup
ROLLBACK/*!*/;
BINLOG '
kHu/Ww8qTw8AdwAAAHsAAAAAAAQANS43LjIzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACQe79bEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
Aank/Sc=
'/*!*/;
# at
# :: server id end_log_pos CRC32 0x4e3fc05f Previous-GTIDs
# [empty]
# at
# :: server id end_log_pos CRC32 0x368d3215 Stop
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

中继日志

1.查看中继日志日志变量

用于实现mysql的主从复制

 mysql> show global variables like "%relay%";
+---------------------------+--------------------------------------------+
| Variable_name | Value |
+---------------------------+--------------------------------------------+
| max_relay_log_size | |
| relay_log | relay-bin |
| relay_log_basename | /data/mysql/mysql3306/data/relay-bin |
| relay_log_index | /data/mysql/mysql3306/data/relay-bin.index |
| relay_log_info_file | relay-log.info |
| relay_log_info_repository | FILE |
| relay_log_purge | ON |
| relay_log_recovery | ON |
| relay_log_space_limit | |
| sync_relay_log | |
| sync_relay_log_info | |
+---------------------------+--------------------------------------------+
rows in set (0.00 sec)

2.二进制日志变量详解

 relay_log fileName:       指定中继日志的文件名。【文件名为空,表示禁用了中继日志】
relay_log_index: 索引表
relay_log_info_file: 记录中继日志文件的相关信息
relay_log_purge: 指定是否自动删除无用的中继日志文件
relay_log_recovery: 是否可以对中继日志做自动恢复相关的配置
relay_log_space_limit: 指定中继日志可以占用的空间大小(0表示不限制)

3.SQL线程应用中继日志流程

MySQL系列详解三:MySQL中各类日志详解-技术流ken的更多相关文章

  1. MySQL系列详解八:MySQL多线程复制演示-技术流ken

    前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有 ...

  2. MySQL/MariaDB数据库忘掉密码解决办法--技术流ken

    前言 有些时候我们常常会忘掉一些服务的密码,比如系统密码,我们可以进入救援模式进行修改密码,可参考我之前的博客<Centos7破解密码的两种方法--技术流ken>.但有些时候我们也会忘掉数 ...

  3. Ansible基础认识及安装使用详解(week5_day1_part1)--技术流ken

    Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量 ...

  4. Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken

    前言 前面已经写了两篇关于docker的博文了,在工作中有关docker的基本操作已经基本讲解完了.相信现在大家已经能够熟练配置docker以及使用docker来创建镜像以及容器了.本篇博客将会讲解如 ...

  5. MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken

    xtrabackup简介 xtrabackup是一个用来对mysql做备份的工具,它可以对innodb引擎的数据库做热备.xtrabackup备份和还原速度快,备份操作不会中断正在执行的事务,备份完成 ...

  6. MySQL系列详解一:MySQL&&多实例安装-技术流ken

    简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储.更新和存取信息更加容易.MySQL是一个客户机/服务器结构的实现 ...

  7. MySQL系列详解四:MySQL事务-技术流ken

    MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数 ...

  8. MySQL系列教程(三)

    mySQL集群(cluster) 这一章,我根本不打算写,因为mySQL 的 官方Cluster方案基本上都是bullshit,尤其是它的官方集群方案,竟然都无人维护了,而且mySQL集群完全可以用眼 ...

  9. MySQL系列(二)---MySQL事务

    MySql 事务 目录 MySQL系列(一):基础知识大总结 MySQL系列(二):MySQL事务 什么是事务(transaction) 保证成批操作要么完全执行,要么完全不执行,维护数据的完整性.也 ...

随机推荐

  1. idea与maven整合

    1.官网下载 apache-maven-3.3.3 2.解压安装后配置conf-settings文件 a. <localRepository>E:\JAVA\maven_cangku< ...

  2. 计算机网络六:无线局域网、IEEE 802.11、WIFI和蓝牙

    无线局域网.IEEE 802.11.WIFI和蓝牙 ㈠无线局域网 1.定义       无线局域网络(Wireless Local Area Networks),简称WLAN.它是相当便利的数据传输系 ...

  3. charming_memory

    Memory Master 一 .Forget遗忘 遗忘似乎是记忆的天敌,但是善用遗忘规律却能帮助我们更好的记忆. 复习的最佳时间是实际材料的1~24小时,最晚不超过2天,复习时间太长,就有一种生疏的 ...

  4. ubuntu16 gitlab的简单安装

    1.安装好ubuntu的ssh服务,使用xshell登录虚拟机 2.下载安装包:  wget -c https://downloads-packages.s3.amazonaws.com/ubuntu ...

  5. shell 日常技巧

    批量注释: :<<COMMENT code COMMENT 循环: #!/bin/bash  for varible1 in {1..5}  #for varible1 in 1 2 3  ...

  6. HTML5元素标记释义

    HTML5元素标记释义 标记 类型 意义 介绍 文件标记 <html> ● 根文件标记 让浏览器知道这是HTML 文件 META标记 <head> ● 开头 提供文件整体信息 ...

  7. 中间件 activeMQ Jms Java Demo

    一.什么是ActiveMQ 百度解释: ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...

  8. 架构(二)Maven安装以及Nexus配置

    一 Maven安装配置 1.1 下载 http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-ma ...

  9. Java 多线程开发之 Callable 与线程池

    前言 我们常见的创建线程的方式有 2 种:继承 Thread 和 实现 Runnable 接口. 其实,在 JDK 中还提供了另外 2 种 API 让开发者使用. 二.简单介绍 2.1 Callabl ...

  10. FFmpeg Android 学习(一):Android 如何调用 FFMPEG 编辑音视频

    一.概述 在Android开发中,我们对一些音视频的处理比较无力,特别是编辑音视频这部分.而且在Android上对视频编辑方面,几乎没有任何API做支持,MediaCodec(硬编码)也没有做支持.那 ...