mysql二进制日志也就是一些mysql命令操作的记录
删除二进制日志信息:
二进制日志会记录大量的信息(其中包含一些无用的信息)。如果很长时间不清理二进制日志,将会浪费很多的磁盘空间。但是,删除之后可能导致数据库崩溃时无法进行恢复,所以若要删除二进制日志首先将其和数据库备份一份,其中也只能删除备份前的二进制日志,新产生的日志信息不可删(可以做即时点还原)。也不可在关闭mysql服务器之后直接删除因为这样可能会给数据库带来错误的。若非要删除二进制日志需要做如下操作:导出备份数据库和二进制日志文件进行压缩归档存储。删除二进制文件的方法如下:
1,使用复位主语句可以删除所有的二进制日志重新记录
mysql>重置主宰;
mysql>显示二进制日志;
解析:首先不建议在生产环境下使用此操作,删除所有的二进制日志后,Mysql将会重新创建新的二进制日志。新二进制日志的编号从000001年开始。
2,根据文件或时间点来删除二进制日志:
语法形式:
mysql>清洗{二进制|主}日志{datetime_expr之前“log_name”|}
其中'log_name”表示把这个文件之前的其他文件都删除掉,也可使前用datetime_expr指定把哪个时间之前的二进制文件删除了。
mysql>清洗二进制日志“mysql-bin.000007”;,#把mysql-bin.000007文件之前的其他文件都删除掉(000001 - 000006)
mysql>PURGEBINARY日志前“2013-10-19 10:26:36”;#使用时间来删除二进制日志
★注意:my.cnf配置开启二进制日志功能默认记录所有数据库,如果指定数据库做二进制日志记录则添加
log-bin=mysql-bin
binlog-do-db=快乐
binlog-do-db=iwker_global
# #二进制开启状态:
mysql>显示全局变量就像“% log_bin %”;
# #使用显示主状态命令可以查看当前启用二进制日志记录的数据库
mysql>显示主状态;
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - +
|文件,,,,,,| |位置Binlog_Do_DB,,,,,,,,,,,,,,,,,| Binlog_Ignore_DB | Executed_Gtid_Set |
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - +
| mysql-bin。000002 |,,,120 | iwker_global、iwker_inside iwker_ucenter |,,,,,,,,|大敌;,,,,,,,,|
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - +
# #查看MySQL服务器上的二进制日志
mysql>显示二进制日志;
★★★使用mysqlbinlog工具进行恢复
步骤:
1,分析定位关键的位置或者时间点
2,导入全库备份的文件
3注释掉误操作的命令或者避开误操作的时间点进行导入
//二进制日志转换成可读的SQL文件
mysqlbinlog mysql-bin。000001比;mysql。sql,,
//或者只导出某个指定数据库的二进制日志
mysqlbinlog - d mysql-bin快乐。000001比;happy_bin.sql
。查询二进制日志文件含有降操作的记录
mysqlbinlog binlog。0000003 |少,,//输出包括在binlog。000003中包含的所有语句,以及其它信息例如每个语句花费的时间,客户发出的线程ID、发出线程时的时间戳等等。
mysqlbinlog mysql-bin。000002 | grep - i - c 2“删除表”- c
b。根据时间来还原——start-datetime——stop-datetime
mysqlbinlog start-datetime=?010-09-29 18:00:00”——stop-datetime=?010-09-29 23:00:00”/var/lib/mysql/mysql-bin.000002 | mysql - u root - p
mysqlbinlog——stop-datetime=2016-07-21 14:40:10/var/log/mysql-bin.000001 | mysql -uroot - p
c。根据数据库名来进行还原
mysqlbinlog - d iwker_inside,/var/lib/mysql/mysql-bin.000002
d。基于位置恢复
mysqlbinlog——起始位置=370停止位置=440,/var/lib/mysql/mysql-bin。000002 | mysql - u root - p