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中的日志

#yyds干货盘点#盘点MySQL中的那些日志文件

简单聊聊MySQL中的六种日志

MySQL中的日志(redo logundo logbinlog)

MySQL中的日志(redo logundo logbinlog)

MySQL中的日志管理 日志备份与恢复