javascript和JQuery焦点图和代码特效大全
当前最流行的开源CMS网站系统大全
当前位置:首页 > 数据库 > MySQL > 

mysql5.6 bin-log日志恢复数据

来源:IT技术网编辑:雨天发布于:2018-01-14人围观

bin-log算是二进制日志文件了它会记录数据库中的任何一条操作了,包括删除及清除操作,我们如果数据丢失了可以通过它来恢复了,具体通过bin-log恢复数据的操作步骤如下。


项目第一期上线后,后期的升级需要升级脚本,不能直接导入整个sql。所以这里开启mysql的bin-log,将所有执行的sql都记录到bin-log中。
我的系统是windows,mysql是社区版5.6 。

1. bin-log所在目录

mysql5.6安装完成后,其数据文件和log都保存在C:\Documentsand Settings\All Users\Application Data\MySQL\MySQL Server 5.6\data 这个目录下。

2. 确认bin-log日志是否开启

SHOW VARIABLES LIKE 'log_bin'

3. 开启bin-log

mysql的配置文件my.ini,所在目录C:\Documentsand Settings\All Users\Application Data\MySQL\MySQL Server 5.6 。添加log-bin=”log_bin”,bin-log的文件名称为log_bin.00000x。
如下图所示,这样就开启了myql的bin-log日志了,mysql会在data目录生成log_bin.00000x文件。

 

4.bin-log转换为txt文本

bin-log是二进制文件,可以使用mysqlbinlog命令将其转换成文本格式。
mysqlbinlog log_bin.000001 > log_bin.txt

5. 生成新的log文件

flush logs

6.bin-log日志恢复

将整个log_bin.000001进行恢复数据

mysqlbinlog log_bin.000001

bin-log恢复到某个点

现在要从log_bin.000001(bin-log文件)恢复某个点到某个点:
mysqlbinlog --start-position 325--stop-position 567 log_bin.000001

参数:

--start-position开始点
--stop-position结束点
--start-date 开始时间
--stop-date 结束时间

log_bin.000001内容:

/*!*/;
# at 325
#130929 16:30:46 server id 1  end_log_pos 490 CRC32 0x9501d4ba          Query       thread_id=16         exec_time=0    error_code=0
SET TIMESTAMP=1380443446/*!*/;
ALTER TABLE `sdghdb`.`test` ADD COLUMN `name` VARCHAR(45) NULL COMMENT '名称'  AFTER `info`
/*!*/;
# at 490
#130929 16:31:22 server id 1  end_log_pos 567 CRC32 0xefc463e6 Query       thread_id=17         exec_time=0    error_code=0
SET TIMESTAMP=1380443482/*!*/;
BEGIN
/*!*/;
# at 567
#130929 16:31:22 server id 1  end_log_pos 706 CRC32 0xfa48b5d3           Query       thread_id=17         exec_time=0    error_code=0
SET TIMESTAMP=1380443482/*!*/;
INSERT INTO `sdghdb`.`test` (`info`, `name`) VALUES ('aaa', 'bbbb')
/*!*/;


与相关的文章
有时间的话来看看IT界的突发事件