mysql 日志详解
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;
查看二进制日志文件内容
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