1. 確保mysql開啟了二進(jìn)制日志
/etc/my.cnf中有如下配置
server-id=1
log-bin=mysql-bin
2. 通過mysqlbinlog將二進(jìn)制日志轉(zhuǎn)成sql
mysqlbinlog --database=core --set-charset=utf8 --base64-output=decode-rows -v mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 --stop-datetime="2017-07-13 09:00:00" | grep api > api.sql
--database:指定數(shù)據(jù)庫
--set-charset:指定編碼
--base64-output:去掉腳本中的row-format
--start-datetime:指定開始時(shí)間
--stop-datetime:指定結(jié)束時(shí)間
注:以上命令中包含多個(gè)二進(jìn)制文件然遏,會(huì)將多個(gè)二進(jìn)制文件中的指定內(nèi)容輸出到api.sql中
3. 根據(jù)需求處理sql腳本
3.1. 默認(rèn)得到的sql每一行sql結(jié)尾沒有分號枪狂,需手動(dòng)添加: 可利用文本編輯器進(jìn)行替換
3.2. 刪除腳本中的多余數(shù)據(jù): 可根據(jù)關(guān)鍵字對行進(jìn)行刪除:sed -i '/keyword/d' api.sql
4. 導(dǎo)入sql腳本
mysql -uznz -p123456 --default-character-set=utf8 core < api.sql
--default-character-set:導(dǎo)入時(shí)指定編碼
core:導(dǎo)入的目標(biāo)數(shù)據(jù)庫