萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql日志恢復數據方法介紹

mysql日志恢復數據方法介紹

利用日志恢復數據一般情況是你沒對數據庫進行有效和合理的備份導致了,但有一個提前就是你要做日志恢復我們就必須是開了mysql日志的,否則是無法進行日志備份的哦。

mysql日志備份優缺點

優點:是想恢復到某個時間點,或某個操作sql語句

缺點:就產生龐大的日志文件

window中mysql日志恢復方法

1.開啟mysql日志
在my.ini 文件裡找到[mysqld],在其下面增加一行log-bin

 代碼如下 復制代碼

[mysqld] 
# The TCP/IP Port the MySQL Server will listen on 
port=3306 
log-bin 

默認日志文件名字是以主機命名名字,如果想改為自己定義的名字

 代碼如下 復制代碼 [mysqld] 
# The TCP/IP Port the MySQL Server will listen on 
port=3306 
#mysql-bin為自定義名字 
log-bin = mysql-bin

 
2.定義日志文件路徑

 代碼如下 復制代碼

#Path to the database root存放日志的路徑 
datadir="D:/web/mysql/Data/" 

3.重啟mysql

在上面的路徑下會產生兩個文件

4.用命令進入mysql

 代碼如下 復制代碼

mysql> show binlog events ;

上面pos就是開始位置end_log_pos的結束位置
相關命令:
1.查看當前日志開啟情況

 代碼如下 復制代碼

mysql>show variables like 'log%';

2.查看當前日志情況

 代碼如下 復制代碼

mysql>show master status;

3.顯示當前二進制

 代碼如下 復制代碼

mysql>show binary logs;

5.恢復有兩種:
1.是把日志文件保存成sql文件,再用source命令
定位保存用法:在mysql安裝bin的目下:

 代碼如下 復制代碼 mysqlbinlog --start-position=4 --stop-position=239 d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt

定時間保存用法:在mysql安裝bin的目下

 代碼如下 復制代碼 mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt

 代碼如下 復制代碼 source test1.txt

2.直接把日志恢復到某個點上
定時間還原法:在mysql安裝bin的目下

 代碼如下 復制代碼 mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 | mysql -uroot -p

定位還原法:在mysql安裝bin的目下

 代碼如下 復制代碼 D:\web\mysql\bin>mysqlbinlog --start-position=3696 --stop-position=4241 d:\web\
ysql\data\mysql-bin.000001 | mysql -hlocalhost -uroot -p

PS:如果在創建表和操作表的過程有錯誤,在還原的時候也是會有錯誤的,那得部分定位來還原。(下面是我操作過程中一個小報錯,Duplicate entry '1' for key 1
去掉auto_increment,或者不要給有auto_increment的字段賦值便可解決),有興趣的朋友可以簡單創建一個表,增加數據,然後刪除數據,利用上面步驟看看哈

copyright © 萬盛學電腦網 all rights reserved