Mysql的日志包括如下几种日志:

  • 错误日志
  • 普通查询日志
  • 二进制日志
  • 慢查询日志

Mysql版本

此文档测试mysql的版本为

mysql -V

  

错误日志 error log

Mysql错误日志主要记录Mysql实例每次启动、停止的详细信息,以及Mysql实例运行过程中产生的警告或者错误信息,与其它日志不同,Mysql错误日志必须开启,无法关闭。 
与错误日志相关的参数: 
log_error:设置了错误日志文件的物理位置。

mysql> show global variables like 'log_error';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| log_error | .\LENOVO-PC.err |
+---------------+-----------------+
1 row in set (0.28 sec)

og_warnings:设置是否将警告信息也写入到错误日志中。默认是2,如果想要禁用,将其设置为0。

mysql> show global variables like 'log_warnings';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings | 1 |
+---------------+-------+
1 row in set (0.03 sec)

普通查询日志 general log

Mysql general log记录了Mysql运行的所有操作,无论这些操作执行成功与否。另外还包括一些事件,例如客户端连接断开的一些信息,默认不开启。 
与general log相关的参数: 
general_log:设置general log是否开启。

mysql> show global variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log | OFF |
+---------------+-------+
1 row in set (0.02 sec)

我们可以通过下面方式设置

mysql> set @@global.general_log = 0;
Query OK, 0 rows affected (0.01 sec) mysql> show global variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log | OFF |
+---------------+-------+
1 row in set (0.00 sec) mysql> set @@global.general_log = 1;
Query OK, 0 rows affected (0.00 sec) mysql> show global variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log | ON |
+---------------+-------+
1 row in set (0.00 sec)

我们同样可以采用my.cnf中添加general_log=on/off;此时我们使用set方式修改会不起作用。 
general_log_file:general_log开启后,数据库将自动创建日志文件,次参数设置了general_log文件存放的物理位置。

mysql> show global variables like 'general_log_file';
+------------------+-----------------------------+
| Variable_name | Value |
+------------------+-----------------------------+
| general_log_file | /mysql/data/mysql-dev01.log |
+------------------+-----------------------------+
1 row in set (0.01 sec)

log_output:设置了general log和慢日志内存存储的方式,默认是file

mysql> show global variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.01 sec)

可以设置为输出方式为table

mysql> set @@global.log_output = 'table';
Query OK, 0 rows affected (0.00 sec) mysql> show global variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | TABLE |
+---------------+-------+
1 row in set (0.00 sec)

通过mysql数据库下的general_log表查询日志信息

mysql> select * from mysql.general_log;
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------+
| event_time | user_host | thread_id | server_id | command_type | argument |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------+
| 2016-11-16 09:18:57.772842 | root[root] @ localhost [] | 4 | 1 | Query | show global variables like 'log_output' |
| 2016-11-16 09:20:35.328694 | root[root] @ localhost [] | 4 | 1 | Query | show global variables like 'general_log' |
| 2016-11-16 09:20:44.918671 | root[root] @ localhost [] | 4 | 1 | Query | show databases |
| 2016-11-16 09:21:03.587735 | root[root] @ localhost [] | 4 | 1 | Query | select * from mysql.general_log |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------+
4 rows in set (0.00 sec  

慢日志 slow query log

慢日志记录执行时间过程和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。 
与慢日志相关的参数: 
slow_query_log:设置慢日志是否开启。

mysql> show global variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF |
+----------------+-------+
1 row in set (0.01 sec)

可以通过设置参数进行修改

mysql> set @@global.slow_query_log = 1;
Query OK, 0 rows affected (0.00 sec) mysql> show global variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | ON |
+----------------+-------+
1 row in set (0.01 sec) mysql> set @@global.slow_query_log = 0;
Query OK, 0 rows affected (0.00 sec) mysql> show global variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | OFF |
+----------------+-------+
1 row in set (0.00 sec)

slow_query_log_file:设置慢日志的文件地址

mysql> show global variables like 'slow_query_log_file';
+---------------------+----------------------------------+
| Variable_name | Value |
+---------------------+----------------------------------+
| slow_query_log_file | /mysql/data/mysql-dev01-slow.log |
+---------------------+----------------------------------+
1 row in set (0.01 sec)

long_query_time:设置慢查询的时间阀值,默认是10秒。

mysql> show global variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.01 sec)

log_queries_not_using_indexes:设置没有使用索引的查询语句是否记录在慢日志文件中。

mysql> show global variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.01 sec)

log_output:详见general_log。 
慢日志查看 
慢日志地查询分为两种情形,慢查询日志的数据形式设置为table以及数据方式设置为file. 
table: 
采用mysql.slow_log进行查询。 
file: 
可以执行查看原文本文件,或者采用mysqldumpslow.pl获取慢日志摘要。

二进制日志 binlog

二进制日记记录数据库的变化情况,内容报错数据库所有的更新操作,ddl和dml。数据库管理员可以通过二进制日志查看数据库过去某一时刻发生了哪些变化,必要时可以使用二进制日志恢复数据库。二进制文件内容为二进制信息,不可直接查看。 
与二进制文件相关的参数: 
log_bin:查看二进制文件是够开启

mysql> show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)

  

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)

log_bin_index:记录二进制文件的清单

mysql> show variables like 'log_bin_index';
+---------------+---------------------------------+
| Variable_name | Value |
+---------------+---------------------------------+
| log_bin_index | /mysql/data/mysql-bin-log.index |
+---------------+---------------------------------+
1 row in set (0.00 sec)

这两个参数都是静态变量,无法使用set命令对其进行修改赋值。只能通过my.cnf文件设置。 
log_bin=/mysql/data/mysql-bin-log;但是设置时需要设置server-id,否则无法启动mysql,  

mysql中有多少种日志的更多相关文章

  1. 【日志】MySQL中有多少种日志

    redo 重做日志 作用:确保事务的持久性,防止在发生故障,脏页未写入磁盘.重启数据库会进行redo log执行重做,到达事务一致性 undo 回滚日志 作用:保证数据的原子性,记录事务发生之前的数据 ...

  2. MySQL的两种日志类型,redo log,binlog

    文章内容学习:极客时间-林晓彬老师-MySQL实战45讲 整理而得 我们知道MySQL数据库在发生意外宕机的情况下,可以将数据恢复到历史的某个时间点,能实现这个功能依靠的是日志,MySQL提供两种类型 ...

  3. MySQL 的七种日志总结

    文章转载自:https://mp.weixin.qq.com/s/ewv7HskHvH3O7kFyOmoqgw 一.MySQL 日志分类 日志类别 说明 备注 错误日志 错误日志记录了当MySQL启动 ...

  4. MongoDB中4种日志的详细介绍

    前言 任何一种数据库都有各种各样的日志,MongoDB也不例外.MongoDB中有4种日志,分别是系统日志.Journal日志.oplog主从日志.慢查询日志等.这些日志记录着MongoDB数据库不同 ...

  5. mysql中的几种日志了解

    前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slo ...

  6. mysql中有多种存储引擎,每种引擎都有自己的特色

    mysql中有多种存储引擎,每种引擎都有自己的特色. 用途: MyISAM:快读, Memory:内存数据, InnoDB:完整的事务支持 锁: MyISAM:全表锁定, Memory:全表锁定, I ...

  7. 万答#9,MySQL 中有哪些常用的日志

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 前 ...

  8. mysql 几种日志

    mysql 5.5 有以下几种日志: 错误日志(error log): log-err 查询日志(general  query log): log 慢查询日志: -log-slow-queries  ...

  9. MySQL不会丢失数据的秘密,就藏在它的 7种日志里

    本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 进入正题前先简单看看MySQL的逻辑架构,相信我用的着. MySQ ...

随机推荐

  1. Kattis - yoda 【字符串】

    分析 给出两个串 从末尾开始对齐 每位对齐后,每一位 遍历 如果 第一串 的那位 < 第二串 的 那么 第一串的那位 就删去 如果 等于 两位 都保留 如果 大于 那么 保留 第二串的 那位 如 ...

  2. tornado源码分析

    初识tornado 首先从经典的helloword案例入手 import tornado.ioloop import tornado.web class MainHandler(tornado.web ...

  3. 中美贸易战再次开启,世界两极化进程正在加快形成!..... Copyright: 1688澳洲新闻网 Read more at: https://www.1688.com.au/world/international/2018/06/17/369368/

    中美贸易战再次开启,世界两极化进程正在加快形成! https://www.1688.com.au/world/international/2018/06/17/369368/

  4. Javascript中 节流函数 throttle 与 防抖函数 debounce

    问题的引出 在一些场景往往由于事件频繁被触发,因而频繁地进行DOM操作.资源加载,导致UI停顿甚至浏览器崩溃. 在这样的情况下,我们实际上的需求大多为停止改变大小n毫秒后执行后续处理:而其他事件大多的 ...

  5. 未测试 Delphi读写UTF-8、Unicode格式文本文件

    // UTF-8文件写入函数 procedure SaveUTFFile(const FileName: string; S: string; WriteHeader: Boolean = True) ...

  6. hdu 2050 折线分割平面(递推公式)

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. LSM Tree 学习笔记——本质是将随机的写放在内存里形成有序的小memtable,然后定期合并成大的table flush到磁盘

    The Sorted String Table (SSTable) is one of the most popular outputs for storing, processing, and ex ...

  8. Git_学习_05_ 解决冲突

    二.参考资料 1.使用git pull文件时和本地文件冲突怎么办? 2.git 冲突解决

  9. FFMPEG相关开源项目

    1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidF ...

  10. Arc082_F Sandglass

    Description有一个沙漏由两个上下相通玻璃球$A$和$B$构成,这两个玻璃球都含有一定量的沙子,我们暂且假定$A,B$中位于上方的玻璃球的为$U$,下方的玻璃球为$L$,则除非$U$中没有沙子 ...