1.错误日志
错误日志记录了当MySQL从启动到停止期间发生任何严重错误的相关信息。当数据库出现任何故障导致无法正常使用时,首先查看此日志。错误日志默认开启,存放在/var/log/,默认日志文件名为mysqld.log。
show variables like '%log_error%';
2.二进制日志
二进制日志(binlog)记录了所有的DDL语句和DML语句,但不包含查询语句。
作用:①灾难时的数据恢复;②MySQL的主从复制,MySQL8版本中默认开启
show variables like '%log_bin%';
日志格式:
二进制日志有三种日志格式,statement,row,mixed。
statement是基于SQL语句的日志记录,对数据进行修改的SQL都会记录在日志文件中
row是基于行的日志记录,记录的是每一行的数据变更,row是默认的日志格式
mixed是以上两种的混合,默认采用statement,特殊情况会自动切换row
show variables like '%binlog_format%';
日志查看:
二进制日志不能直接读取,需要使用二进制日志查询工具mysqlbinlog来查看。
日志删除:
对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清理,将会占用大量磁盘空间。清理日志的方式有以下三种:
①reset master:删除全部的binlog日志,删除后,日志编号从binlog.000001重新开始
②purge master logs to 'binlig.******' 删除******编号之前的所有binlog日志
③purge master logs before 'yyyy-mm-dd hh24:mi:ss' 删除该时间之前产生的所有日志
3.查询日志
查询日志中记录了客户端的所有操作语句,默认不开启。
如果要开启该日志,可在目录/ect/my.cnf文件中修改如下内容
general_log=1
4.慢查询日志
记录所有执行时间超过参数long_query_time的值的SQL语句,该参数默认值为10s,默认不开启。这个我们在前面的文章已经讲过了,就不再赘述了。