mysql 日志详解

mysql 日志详解

  • 1、二进制日志(binlog)
  • 2、错误日志
  • 3、通用查询日志
  • 4、慢查询日志

1、二进制日志(binlog)

二进制日志还包含关于每个更新数据库的语句的执行时间信息,它不包含没有修改任何数据的语句

vim my.ini

[MySQLd]
log-bin [=path/ [fileName] ]
# log-bin定义开启二进制日志;path为日志文件所在的目录路径;fileName指定了日志文件的名称,如文件的名为fileName.000001 fileName.000002
# fileName.index为所有日志的清单

expire_logs_days = 10 
# 自动清除过期日志时间,默认为0,即不生效
max_binlog_size = 1024M
# 定义单个fileName.000001文件大小

查看是否开启

show  variables like '%log_bin%' \G;

mysql 日志详解_第1张图片

查看二进制日志文件内容

mysqlbinlog path/fileName.000001

使用二进制日志文件恢复数据库

mysqlbinlog [option] fileName |mysql –u User -p passWord
# [option]
# --start-date --stop-date 指定恢复的起始与结束时间
# --start-position、--stop-position 指定恢复的起始与结束位置

暂停与开启记录二进制日志

SET sql_log_bin = {0|1} -- 0为暂停 1为恢复开始

2、错误日志

mysql启动、运行与停止时发生错误的相关日志信息记录

vim my.ini

[MySQLd]
log-error [=path/ [fileName] ]

3、通用查询日志

记录用户操作日志,包括启动和关闭服务、执行查询和更新语句等

-- 开启
set @@global.general_log=1;

-- 查看状态与位置
show variables like '%general%';

4、慢查询日志

即sql执行查询语句时间较长的日志记录,通过慢查询日志,可以找出执行时间较长、执行效率较低的语句,然后进行优化

vim my.ini

[MySQLd]
log-slow-queries[=path / [fileName] ]
long_query_time=n # 默认为10s

你可能感兴趣的:(Mysql,mysql,数据库,sql)