mysql日志管理
一、MySQL日志简介
日志文件 | 选项 | 文件名/表名称 | 程序 |
---|---|---|---|
错误 | –log-error | host_name.err | N/A |
常规 | –general_log | host_name.log general_log | N/A |
慢速查询 | –slow_query_log --long_query_time | host_name-slow.log slow_log | mysqldumpslow |
二进制 | –log-bin --expire-logs-days | host_name-bin.000001 | mysqlbinlog |
审计 | –audit_log --audit_log_file | audit.log | N/A |
1.1 错误日志
1)作用:
记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。
2)默认位置:
$MYSQL_HOME/data/
3)开启方式:(MySQL安装完后默认开启)
vim /etc/my.cnf
#编辑配置文件
[mysqld]
log_error=/application/mysql/data/$hostname.err
#查看方式
mysql> show variables like 'log_error';
1.2一般查询日志
1)作用:
记录mysql所有执行成功的SQL语句信息,可以做审计用,但是我们很少开启。
2)默认位置:
$MYSQL_HOME/data/
3)开启方式:(MySQL安装完之后默认不开启)
#编辑配置文件
vim /etc/my.cnf
[mysqld]
general_log=on
general_log_file=/application/mysql/data/$hostnamel.log
#查看方式
mysql> set global general_log=on;
mysql> show variables like '%gen%';
1.3二进制日志
1)作用:
记录已提交的DML事务语句,并拆分为多个事件(event)来进行记录 记录所有DDL、DCL等语句
总之,二进制日志会记录所有对数据库发生修改的操作
2)二进制日志模式:
statement:语句模式(默认模式);
row:行模式,即数据行的变化过程;
mixed:以上两者的混合模式。
企业推荐使用row模式
3)优缺点:
statement模式:
优点:简单明了,容易被看懂,就是sql语句,记录时不需要太多的磁盘空间。
缺点:记录不够严谨。
row模式:
优点:记录更加严谨。 缺点:有可能会需要更多的磁盘空间,不太容易被读懂。
4)binlog的作用:
数据的备份恢复
数据的复制