程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> mysql使用二進制日志恢復數據

mysql使用二進制日志恢復數據

編輯:MYSQL入門知識

一、恢復到某個二進制文件

1.開啟二進制日志

在mysqld的配置節點下添加如下配置

log-bin="E:/Mysql57BinLog/binlog"(windows下的路徑,linux下自行修改路徑) 
expire_logs_days=10
max_binlog_size=100M

2.重啟mysql服務

使用命令show VARIABLES like '%log_bin%';查看

3.創建庫和表

create database mytest;

use mytest;
create table t(a int PRIMARY key)ENGINE = INNODB DEFAULT CHARSET=utf8;

flush logs;   flush logs,刷新二進制日志後會多出來一個二進制日志   使用命令查看二進制日志內容   默認會讀取配置文件,檢測到no--beep會報錯。 推薦使用命令:mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.000001  

4.插入數據

use mytest;
insert into t select 1 union all select 2 union all select 3;

flush logs;    

5.刪除數據庫

drop database mytest;

flush logs;

6.恢復數據

mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.000001 E:\Mysql57BinLog\binlog.000002 E:\Mysql57BinLog\binlog.000003 | mysql -u root -p   數據已還原。   -----------------------------------華麗的分割線--------------------------------------------------------------

二、恢復到某一時間點的數據

create table t2(a int PRIMARY key)ENGINE=INNODB default CHARSET=utf8;

insert into t2 values(1),(2),(3),(4),(5);   >mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.000006   刪除數據 delete from t2 where a < 4;   恢復數據   drop database mytest; 刪除庫mytest,回到最原始的地方   mysqlbinlog --no-defaults --start-position="4" --stop-position="1285" E:\Mysql57BinLog\binlog.000006  | mysql -u root -p     數據恢復成功。   歡迎大家拍磚~~  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved