mysql 日志

日志分类

  • 错误日志:记录mysql服务的启动,运行或停止mysql服务时出现的错误

  • 查询日志:记录建立的客户端连接和执行的语句

  • 二进制日志:记录所有更改数据的语句,可用于数据复制和还原

  • 慢查询日志:记录所有执行时间超过long_query_time的所有查询和不使用索引的查询

 

二进制文件  (show variables like 'log_%')

二进制文件主要记录mysql数据库的变化,包含更新了数据或者已经潜在更新了数据的操作

a.启动和设置二进制文件

在my.cnf中[mysqld]组下面设置如下

log-bin=path/filename

expire_logs_days=10

max_binlog_size=100M

其中 log-bin 定义开启二进制文件,path为路径,filename为文件名,生成的日志格式是 filename.000001,还有一个filename.index记录了所有日志的清单

expire_logs_days 表示日志自动删除的天数

max_binlog_size 表示文件大小,超过该大小,创建新文件,文件名加1,默认为1G

b.查看二进制日志

show BINARY LOGS;   //可以查看文件名,及文件个数

mysqlbinlog /usr/local/mysql/var/mysql-bin.000001    //在bin里面

c.删除二进制文件

RESET MASTER;    //删除二进制日志并且重新从编号000001开始创建

PURGE MASTER LOGS TO "mysql-bin.000007";    //删除编号7之前的文件,保留7

PURGE MASTER LOGS BEFORE '20130330';    //删除指定日期的文件

d.使用二进制文件还原数据库

mysqlbinlog --stop-date="2013-03-30 15:27:48" /usr/local/mysql/var/mysql-bin.000008 | mysql -u root -p 123456

恢复数据库到指定时间的状态

e.暂时停止二进制日志功能

执行sql语句

SET sql_log_bin = 0;   //暂停记录

SET sql_log_bin = 1;   //恢复记录

 

错误日志

默认情况下,错误日志是开启的,保存在数据库的数据目录下,文件名默认为hostname.err

a.启动和设置

在my.cnf中[mysqld]组下面设置如下

log-error=path/filename

b.查看错误日志

show variables like 'log_error';

文件也可以直接打开查看,里面就是文本

c.删除错误日志

flush logs;

 

通用查询日志

记录所有用户操作,包括启动关闭,查询语句和更新语句,mysql默认情况下没有开启通用查询日志

a.启动和设置

在my.cnf中[mysqld]组下面设置如下

log=path/filename 

可以就光写log没有值,将默认存储在数据目录下,文件名是hostname.log

b.查看

可以使用记事本查看

c.删除

mysqladmin -u root -p flush-logs;

flush logs;

 

慢查询日志

a.启动和设置

在my.cnf中[mysqld]组下面设置如下

log-slow-queries=path/filename

long_query_time=n

b.查看

show VARIABLES like 'log_slow%';

也可以直接打开查看

c.删除

flush logs; 

或者

mysqladmin -u root -p flush-logs;

 

posted @ 2015-08-19 17:32  笑笑别人  阅读(174)  评论(0编辑  收藏  举报