在mysql中,有4种不同的日志,分别是错误日志、二进制日志(binlog日志,归档日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹。
1)错误日志
它记录了当mysql启动和停止时,以及服务器在运行过程种发生任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。
该日志默认开启的。
5.6版本,默认存放mysql/lib/下
5.7版本,默认存放mysql/data/下。**
1.1)查看日志位置命令
show variables like 'log_error';
1.2)查看日志内容
实时查看文件末尾错误信息
tail -f /usr/local/mysql/data/mysqld.local.err
2)二进制日志
二进制日志binlog 记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,mysql的主从复制,就是通过该binlog实现的。
二进制日志,默认情况下是没有开启的,需要到mysql的配置文件中开启,并配置mysql日志的格式。
配置文件位置:/usr/my.cnf
日志存放位置:配置时,给定文件名但是没有制定路径,日志默认写入mysql的数据目录。
#配置开启binlog日志,日志的文件前缀为mysqlbin->生产的文件名:mysqlbin.00001,mysqlbin.00002
log_bin=mysqlbin
#配置二进制日志的格式
binlog_format=STATEMENT
2.1)日志格式
STATEMENT
该日志格式在日志文件中记录的都是SQL语句(statement),每一条对数据进行修改的SQL都会记录在日志文件中,通过mysql提供mysqlbinlog工具,可以清晰的查看到每条语句的文本。主从复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次。
ROW
该日志格式在日志文件中记录的是每一行的数据变更,而不是记录SQL语句。
比如,执行SQL语句:update tb_book set status=’1’;
如果是STATEMENT格式:在日志中记录一行SQL文件;
如果是ROW:由于是对全表进行更新,也就是每一行记录都会发生变更,ROW格式的日志中会记录每一行的数据变更。
MIXED
目前mysql默认的日志格式,混合了statement和row两种格式。默认情况采用statement,但是在一些特殊情况下采用row来进行记录。mixed格式尽量利用两种模式的优点,而避开他们的缺点。
2.2)日志读取
知识点
变换形式展示数据
