萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql5.6 bin

mysql5.6 bin

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')
/*!*/;

copyright © 萬盛學電腦網 all rights reserved