错误日志
记录了当mysql启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息,该日志是默认开启的,查看日志位置
show variables like '%log_error%';
/var/log/mysqld.log就是mysql的错误日志的位置
二进制日志
二进制日志记录了所有的DDL(数据定义语句)和DML(数据操纵语句)不包括数据查询(SELECT、SHOW)语句。默认是开启状态,查看日志位置:
show variables like '%log_bin%'
其中log_bin_basename日志文件的位置为目录/var/lib/mysql/bin下的binlog开头的文件
log_bin_index日志的索引文件位置
日志格式
|-----------|--------------------------------|
| STATEMENT | 记录对数据进行修改的SQL语句 |
| ROW(默认) | 记录每行的数据变更 |
| MIXD | 默认采用STATEMENT,特殊情况下会切换为ROW进行记录 |
查看当前的日志格式
show VARIABLES like '%binlog_format%';
日志默认过期时间30天,可以通过命令进行修改
日志查看
需要通过查询工具mysqlbinlog来进行查看
mysqlbinlog [参数选项] logfilename
参数选项:
-d 指定数据库名称,只列出指定的数据库相关操作。
-o 忽略掉日志中的前n行命令。
-v 将行事件(数据变更)重构为SQL语句
-vv 将行时间(数据变更)重构为SQL语句,并输出注释信息
查询日志
查询日志中记录了客户端的所有操作语句。默认未开启
查看查询日志的配置
show variables like '%general%';
通过修改mysql的配置文件my.cnf
general_log=1
general_log_file=/var/lib/mysql/mysql_query.log
general_log=1表示打开查询日志
general_log_file用于指定日志文件的位置,默认为localhost.log
然后重启mysql服务即可
慢查询日志
记录了所有执行时间超过参数long_query_time并且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志,默认未开启,long_query_time默认为10秒
开启方法和查询日志一样也是在my.cnf文件中添加配置信息,然后重启服务即可
#打开慢查询日志
slow_query_log=1
#执行时间参数
long_query_time=10