1. 程式人生 > >binlog二進位制日誌基於時間,基於位置position還原裡面的坑

binlog二進位制日誌基於時間,基於位置position還原裡面的坑

首先是基於時間還原:

我linux裡面的命令最開始參考前輩部落格寫出來是這樣的

/usr/bin/mysqlbinlog --start-date="2018-10-26 11:00:00" --stop-date="2018-10-26 14:00:00" /var/lib/mysql/mysql-bin.000001 |mysql -uroot -p

這 條命令報錯:

unknown variable 'start-date=2018-10-3-26 11:00:00'

我就想怎麼會報錯呢,知道看見這種寫法start-datetime,對,要加個time在後面

修改為是這樣:

/usr/bin/mysqlbinlog --start-datetime="2018-10-26 11:00:00" --stop-datetime="2018-10-26 14:00:00" /var/lib/mysql/mysql-bin.000001 |msyql -uroot -p

這次沒報錯了,執行成功,但是進入到資料庫中並沒有還原成功

我略微思考了一下,時間可能不對,我沒有照二進位制日誌裡面準確的時間點還原,然後又修改成這樣:

/usr/bin/mysqlbinlog --start-datetime="2018-10-26 11:48:07" --stop-datetime="2018-10-26 14:15:01" /var/lib/mysql/mysql-bin.000001 |msyql -uroot -p

對,就這樣就還原成功了,這就是我遇見的兩個需要注意的地方

/usr/bin/mysqlbinlog(這個根據find / -name 'mysqlbinlog'找出來,並不都是這個位置)

基於位置還原,我就是一開始不會找位置,找準點就好了

在commit之後,在set timestamp 之前就行了

命令如下

/usr/bin/mysqlbinlog --start-position="154" --stop-position="1444" /var/lib/mysql/mysql-bin.000001 |msyql -uroot -p