1. 确保mysql开启了二进制日志
/etc/my.cnf中有如下配置
server-id=1
log-bin=mysql-bin
2. 通过mysqlbinlog将二进制日志转成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:指定数据库
--set-charset:指定编码
--base64-output:去掉脚本中的row-format
--start-datetime:指定开始时间
--stop-datetime:指定结束时间
注:以上命令中包含多个二进制文件,会将多个二进制文件中的指定内容输出到api.sql中
3. 根据需求处理sql脚本
3.1. 默认得到的sql每一行sql结尾没有分号,需手动添加: 可利用文本编辑器进行替换
3.2. 删除脚本中的多余数据: 可根据关键字对行进行删除:sed -i '/keyword/d' api.sql
4. 导入sql脚本
mysql -uznz -p123456 --default-character-set=utf8 core < api.sql
--default-character-set:导入时指定编码
core:导入的目标数据库