一,mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
是否启用了日志
mysql>show variables like 'log_%';
查看当前的日志
mysql> show master status;
显示二進制日志數目
mysql> show master logs;
看二进制日志文件用mysqlbinlog(找到文件用vim直接打开)
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail
导出mysql日志 /usr/bin/mysqlbinlog --start-datetime='开始时间' --stop-datetime='结束时间' binlog日志文件的名称 > /tmp/mysql.log
本地虚拟机mysql日志位置 /usr/local/mysql/data
本地mysqlbinlog位置 /var/log/mysql/
二.开启binlog日志
在my.cnf(本地位置在etc/mysql/my.cnf)文件中打开log-bin即可
三.查看某个binlog日志内容,常用有两种方式
1.使用mysqlbinlog自带查看命令法:
注:binlog是二进制文件,普通文件查看器cat more vi等都无法打开,必须使用自带的 mysqlbinlog 命令查看
binlog日志与数据库文件在同目录中(我的环境配置安装是选择在/usr/local/mysql/data中)
在MySQL5.5以下版本使用mysqlbinlog命令时如果报错,就加上 “--no-defaults”选项
2.上面这种办法读取出binlog日志的全文内容较多,不容易分辨查看pos点信息,这里介绍一种更为方便的查询命令:
mysql> show binlog events [IN 'log_name'] [FROMpos] [LIMIT [offset,] row_count];
选项解析:IN'log_name'指定要查询的binlog文件名(不指定就是第一个binlog文件) FROMpos指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
LIMIT [offset,] 偏移量(不指定就是0)
row_count 查询总条数(不指定就是所有行)
四.其他命令
A.查询第一个(最早)的binlog日志:mysql>show binlog events\G;
B.指定查询mysql-bin.000021这个文件:mysql> show binlog events in 'mysql-bin.000021'\G;
C.指定查询mysql-bin.000021 这个文件,从pos点:8224开始查起:mysql> show binlog events in 'mysql-bin.000021' from 8224\G;
D.指定查询mysql-bin.000021 这个文件,从pos点:8224开始查起,查询10条mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 10\G;
E.指定查询mysql-bin.000021 这个文件,从pos点:8224开始查起,偏移2行,查询10条mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 2,10\G;
五.利用binlog恢复数据库
具体详见:
http://www.cnblogs.com/martinzhang/p/3454358.html
网友评论