mysql binlog 恢復

開始先執行天天自動備份的數據庫mysql

show master status;

再使用binlog恢復linux

 binlog直接恢復數據庫,不建議直接使用sql

mysqlbinlog --start-datetime="2018-8-11 02:00:00" C:\Users\donald\Desktop\mysql.000243 | mysql -uroot -p sakila

優先使用下面的,把binlog導出sql文件,看下沒有問題再從新導入數據庫

mysqlbinlog --start-datetime="2018-8-11 02:00:00"  --database=sakila C:\Users\donald\Desktop\mysql.000243 >C:\Users\donald\Desktop\binlog.sql

恢復的數據不包含視圖,視圖須要另外使用工具導出導入windows

mysqldump -E -R -u ursername-ppassword --databases db> C:\Users\Administrator\Desktop\db.dump工具

使用mysqldump ,系統不會區分視圖和表,所以有視圖的時候dump必定會報錯編碼

 

另外恢復的數據庫,某些視圖或者function是使用非root 帳號建立的,對應的數據也要有一樣的帳號,不然會有   execute command denied to user 'admin'@'%' for routine.......的報錯3d

 

另外,mysqldump 是不會區分視圖和表 ,把視圖和表混一塊兒,就會報錯 Couldn't execute 'show create table 'bs_purchase(視圖名)''....日誌

 

 

基於linux 恢復數據code

-- 查看全部binlog日誌列表
SHOW MASTER LOGS ;
-- 查看master狀態,即最後(最新)一個binlog日誌的編號名稱,及其最後一個操做事件pos結束點(Position)值
SHOW MASTER STATUS;
-- 查詢第一個(最先)的binlog日誌:
show binlog events
-- 指定查詢 mysql-bin.000013 這個文件限制10行
show binlog events in 'mysql-bin.000013' from 1574 LIMIT 10 ;
-- 查看binlog
mysqlbinlog --start-datetime='2019-03-25 00:00:00' --stop-datetime='2019-03-25 00:00:10' -d zita_wms /var/lib/mysql/binlog/mysql-bin.000013 -vv 


-- 備份最後一個binlog日誌文件
cp -v /var/lib/mysql/binlog/mysql-bin.000013 /root/

-- 執行一次刷新日誌索引操做,從新開始新的binlog日誌記錄文件
flush logs;
SHOW MASTER LOGS ;

-- 備份dump文件恢復  基於windows 語句, 
mysql -uroot -p < C:\Users\username\Desktop\zita_wms-20190325_013001.dump

-- 導出binlog的sql 文件
mysqlbinlog --start-datetime="2019-03-25 01:30:00" --database=zita_wms /var/lib/mysql/binlog/mysql-bin.000013 > /var/lib/mysql/binlog/mysql_20190325.sql

-- binlog 可視化輸出

mysqlbinlog --start-datetime="2019-04-04 13:17:20"  --stop-datetime="2019-04-04 13:22:15" --base64-output=decode-rows -v --database=zita_wms /var/lib/mysql/binlog/mysql-bin.000014 > /var/lib/mysql/binlog/mysql_20190404.sql
 

檢查binlog 是否包含改時間段

很差含就須要就須要兩份binlog的恢復

 

-- 導入binlog 的sql 文件 基於windows的語句
mysql -uroot -p zita_wms < C:\Users\donald\Desktop\mysql_20190325.sql

 

導入dump 文件報錯

mysql -uroot -p --default-character-set=utf8mb4 zita_wms < C:\Users\donald\Desktop\zita_wms-20190408_013001.dump

緣由:導入數據時的默認編碼(utf8)與導出文件的默認編碼(utf8mb4)不一致。

 

ERROR 1231 (42000) at line 5383: Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

8.0以上已經取消了NO_AUTO_CREATE_USER這個關鍵字,刪掉sql語句中的這個關鍵字便可

相關文章
相關標籤/搜索