Mysql DBA学习笔记(日志)
四种日志:错误日志、二进制日志、查询日志、慢查询日志
一、错误日志
错误日志记录错误详细信息,该日志默认开启。
默认存放目录:/var/log/
默认日志文件名:mysqld.log
查看日志变量:
show variables like '%log_error%'
tail指令查看文件尾部(如50行)日志:
tail -50 /var/log/mysql.log
实时查看文件尾部输出的日志:
tail -f /var/log/mysql.log
一旦文件有新日志录入,就会实时追加在上面。
二、二进制日志(BinLog)
二进制日志记录了所有DDL(数据定义语言)语句和DML(数据操纵语言)语句。
DDL:
DML:
但不包括数据查询语句(select,show)语句。
该日志也默认自动开启。
作用:
1)数据恢复
2)主从复制
查看日志变量:
show variables like '%log_bin%'
其中:
log_bin_basename记录日志文件
log_bin_index记录日志索引文件
二进制日志格式:
查看当前选用的日志格式:
show variables like '%binlog_format%'
修改二进制日志格式:
修改mysql的配置文件:
vim/etc/my.cnf
binlog_format = statement(从默认的ROW格式改为STATEMENT)保存:
:x
接着重新启动mysqlsystemctl restart mysqld
查看二进制日志文件(mysqlbinlog):
mysqlbinlog 二进制文件名
如果是基于“ Row ”的二进制日志格式,需要通过“ -v ”才能看到对应数据。
其中:
Where 表示更新前的数据
Set 表示更新后的数据
二进制日志文件的删除(减少磁盘空间的占用)
配置二进制日志文件过期时间,过期后自动删除(默认过期时间:30天)
show variables like '%binlog_expire_logs_seconds%'
三、查询日志
二进制日志——不包括查询数据的sql语句(select)。
查询日志——记录了客户端的所有操作语句。
默认状态下,查询日志不开启。
查看查询日志的状态变量:
show variables like '%general%'
开启查询日志:
修改mysql的配置文件:
vim/etc/my.cnf开启查询日志:
general_log = 1
保存:
:x
接着重新启动mysql:
systemctl restart mysqld
四、慢查询日志
慢查询日志记录所有执行时间超过参数long_query_time设置值
且扫描记录数>=min_examined_row_limit的所有SQL语句的日志。
默认未开启
long_query_time 默认值为10秒
修改mysql的配置文件:
vim/etc/my.cnf开启慢查询日志:
slow_query_log = 1修改时间参数:
long_query_time = 2
保存::x
接着重新启动mysql:
systemctl restart mysqld
实时查看文件尾部输出的日志:
tail -f localhost-slow.log
关于事务的日志:1)redo log 2)undo log在之前学习笔记中有所记录。
参考作者:黑马程序员 - Mysql数据库从入门到精通