mysql日志分类

mysql的日志分类:

(1)错误日志:记录mysql服务的启动,运行,停止mysql服务时出现的问题

[mysqld]

log_error=[/path/filename]

(2)通用查询日志:记录建立的客户端链接和执行语句

[mysqld]

log=

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

(3)二进制日志:记录所有更改数据的语句,可用于数据复制(默认关闭)

配置:[mysqld]

log-bin = [/]   文件目录

expire_logs_days=10 //10天后日志文件自动删除

max_binlog_size=100M //单个文件的最大大小

此日志文件不能直接打开,可以通过命令:binlog 文件名 查看

删除二进制日志:mysql可以自动删除,下面介绍2中手动删除:

1)reset master;//删除所有日志

2)purge master logs to 'logname';//指定文件名

purge master logs before 'date';//指定日期

例如:purge master logs before '20170202';

使用二进制日志还原数据库:如果mysql数据库丢失数据时,可以使用mysqlbinlog根据从指定的时间点开始直到现在,

或另一时间点的日志中恢复数据,

恢复数据语法:

mysqlbinlog [options] filename|mysql -uuser -ppass

对于一些因误操作导致的数据丢失非常有效

暂时暂停2进制日志功能,set sql_log-bin=0|1 //0:暂停记录   1:恢复记录

(4)慢查询日志:记录查询时长超过指定时间的日志

刷新日志:mysqladmin flush-logs 或 mysqladmin refresh

或执行一个语句:flush logs

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

启动和设置慢查询日志:

mysql中默认慢查询日志是关闭的,可以通过my.ini或my.cnf中的log_slow_queries选项打开,也可以在mysql服务启动的时候使用--log-slow-queries[=file_name]启动

慢查询日志,

[mysqld]

log_slow_queries[=file_name]

long_query_time=n

查看慢查询日志:

删除慢查询日志:和通用查询日志一样,慢查询日志也可以直接删除,删除后在不重启服务器的情况下,需要执行mysqladmin -u root -p flush-logs

重新生成文件,或者在客户端登录到服务器执行flush logs语句重建日志文件

 这些所有的设置变量都可以通过show variables 命令查看

例如:

show variables like '%log_%';

在平常的工作中这 4种日志应该打开哪些日志呢?

日志既会影响mysql的性能,也会影响大量的磁盘空间,因此,如果不是必要,应竟可能少的开启日志,根据不同的环境开启不同分日志,

例如在开发过程中优化查询效率低的日志可以开启慢查询,如果需要记录用户的所有操作可以开启通用查询日志,如果需要记录数据的变更

可以开启2进制日志,错误日志默认是开启的

 

posted @ 2017-04-24 11:51  ding9587  阅读(263)  评论(0编辑  收藏  举报