mysql中的日志
Posted 郭大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的日志相关的知识,希望对你有一定的参考价值。
关键词:mysql日志,mysql四种日志
一、mysql日志的种类
(1)一般来说,日志有四种,分别为:
1、错误日志:log-err (记录启动,运行,停止mysql时出现的信息)
2、二进制日志:log-bin (记录所有更改数据的语句,还用于复制,恢复数据库用)
【1】暂时停止:mysql > set sql_log_bin={0,1} 0为停止 1为启用
【2】查看二进制日志文件:mysqlbinlog path/file_name
3、通用日志:general-log (记录建立的客户端连接和执行的语句)
4、慢查询日志: log-slow-queries (记录所有执行超过long_query_time秒的所有查询)
(2)配置文件设置:
#log-err
log-error=[path/[file_name]]
#log-bin
log-bin=[path/[file_name]]
expire_logs_days=10 #表示自动删除10天以前的日志
max_binlog_size=100M #表示单个二进制文件的最大值为100M(如果有大事务运行,运行到一半binlog到达最大值了这个时候不会立马新建,而是会持续写到这个文件里,所以有binlog超出该值也正常)
#general-log
log=[path/[file_name]] #不指定目录的话直接写个log即可,默认会放在mysql数据目录下
#log-slow-queries
log-slow-queries=[path/[file_name]]
long_query_time=n #定义几秒为慢查询,超过这个阀值的将记录到慢查询日志中
二、删除日志操作(参考:https://blog.csdn.net/lxpbs8851/article/details/7328916)
(1)通用操作
mysqladmin -uroot -p flush-logs or mysql> flush logs;
【1】删除重建慢查询日志 【2】删除重建错误日志 【3】关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。
(2)二进制日志删除的三种方法
【1】 RESET MASTER:可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件
【2】PURGE MASTER LOGS:用于删除指定的日志
PURGE {MASTER | BINARY} LOGS TO ‘log_name‘ --用于删除指定的日志
PURGE {MASTER | BINARY} LOGS BEFORE ‘date‘ --用于删除日期之前的日志,BEFORE变量的date自变量可以为‘YYYY-MM-DD hh:mm:ss‘格式
如:(MASTER 和BINARY 在这里都是等效的)
PURGE MASTER LOGS TO ‘test-bin.000001‘;
PURGE MASTER LOGS BEFORE ‘2011-01-0100:00:00‘;
【3】flush logs; or mysqladmin -uroot -p flush-logs;
(关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。)
以上是关于mysql中的日志的主要内容,如果未能解决你的问题,请参考以下文章
MySQL中的日志(redo logundo logbinlog)