mysql中有多少种日志
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中有多少种日志的更多相关文章
- 【日志】MySQL中有多少种日志
redo 重做日志 作用:确保事务的持久性,防止在发生故障,脏页未写入磁盘.重启数据库会进行redo log执行重做,到达事务一致性 undo 回滚日志 作用:保证数据的原子性,记录事务发生之前的数据 ...
- MySQL的两种日志类型,redo log,binlog
文章内容学习:极客时间-林晓彬老师-MySQL实战45讲 整理而得 我们知道MySQL数据库在发生意外宕机的情况下,可以将数据恢复到历史的某个时间点,能实现这个功能依靠的是日志,MySQL提供两种类型 ...
- MySQL 的七种日志总结
文章转载自:https://mp.weixin.qq.com/s/ewv7HskHvH3O7kFyOmoqgw 一.MySQL 日志分类 日志类别 说明 备注 错误日志 错误日志记录了当MySQL启动 ...
- MongoDB中4种日志的详细介绍
前言 任何一种数据库都有各种各样的日志,MongoDB也不例外.MongoDB中有4种日志,分别是系统日志.Journal日志.oplog主从日志.慢查询日志等.这些日志记录着MongoDB数据库不同 ...
- mysql中的几种日志了解
前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slo ...
- mysql中有多种存储引擎,每种引擎都有自己的特色
mysql中有多种存储引擎,每种引擎都有自己的特色. 用途: MyISAM:快读, Memory:内存数据, InnoDB:完整的事务支持 锁: MyISAM:全表锁定, Memory:全表锁定, I ...
- 万答#9,MySQL 中有哪些常用的日志
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 前 ...
- mysql 几种日志
mysql 5.5 有以下几种日志: 错误日志(error log): log-err 查询日志(general query log): log 慢查询日志: -log-slow-queries ...
- MySQL不会丢失数据的秘密,就藏在它的 7种日志里
本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 进入正题前先简单看看MySQL的逻辑架构,相信我用的着. MySQ ...
随机推荐
- spring-cloud 实现更新配置不用重启服务 @FreshScope
继续前面搭建的spring cloud. 这里是基于rabbitMQ搭建的,首先需要在电脑上安装rabbitMQ. 在client端和server端分别加上如下依赖 compile group: 'o ...
- django 之admin后台管理
数据库 from django.db import models from django.contrib.auth.models import User from django.contrib.aut ...
- poj 1258 最小生成树 模板
POJ 最小生成树模板 Kruskal算法 #include<iostream> #include<algorithm> #include<stdio.h> #in ...
- 第一篇:Git操作详解
最近由于项目的需要,我需要负责整个项目的托管,其中涉及到很多Git相关的命令,所以就将之前用到的git相关的命令做了一个总结和归纳.由于开发环境是Linux,所以我接下来的操作命令均针对Linux环境 ...
- mysql 使用过程中出现问题
1. mysql_front连接报错,sql执行错误#3167的解决方案 提示:The 'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is disabl ...
- 单机版 JedisUtil({基本操作封装工具类})【二】
<!--集成的RedisJAR--> <!--引入jedis需的jar包--> <dependency> <groupId>redis.clients& ...
- Android退出应用最优雅的方式(改进版)
Android退出应用最优雅的方式(改进版)(转) 我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Act ...
- 开发人员需要具备的DBA技术
背景 在一些小公司或者部门里,通常很少有专门的DBA职位.这时候就需要我们这些程序员充当业余DBA的作用,去监测和维护数据库性能.本文的目的是帮助非DBA专业的开发人员如何定位和解决日常出现数据库问题 ...
- Python习题-统计日志中访问次数超过限制的IP
#1.1分钟之内ip访问次数超过200次的,就给他的ip加入黑名单#需求分析: #1.读日志,1分钟读一次 #2.获取这1分钟之内所有访问的ip #3.判断ip出现的次数,如果出现200次,那么就加入 ...
- Struts2 - 与 Servlet 耦合的访问方式访问web资源
• 直接访问 Servlet API 将使 Action 与 Servlet 环境耦合在一起, 测试时需要有 Servlet 容器, 不便于对 Action 的单元测试. • ...