此操作为安装数据库时开启了binlog的恢复操作,通过mysql自带的mysqlbinlog工具进行文件解析复原数据库。由于docker mysql镜像中没有mysqlbinlog工具,所以借助本地数据库自带的mysqlbinlog进行解析。
一、下载log数据
- 找到映射data目录,binlog默认保存在data目录下,将binlog文件下载到本地。
二、解析恢复数据库
- 找到本地数据库中的mysqlbinlog工具所在目录,在此目录打开cmd窗口
windows版本的mysqlbinlog工具一般在mysql的bin目录下。
- 打开cmd窗口,输入解析命令
解析命令:mysqlbinlog --set-charset=utf-8 C:\Users\31785\Desktop\fsdownload\mysql-bin.000003>backuptmp.sql
- 进行解析
此时解析文件保存在mysqlbinlog同级目录下。
通过对解析文件中的sql操作进行分析,可以找到整个库被删除的操作事件pos结束点,同时我们找到要恢复的数据库操作的pos开始点和结束点,然后进行还原操作即可。
- 恢复数据库
恢复命令: mysqlbinlog -v C:\Users\31785\Desktop\fsdownload\mysql-bin.000003 --start-position=2560 --stop-position=68542 | mysql -uroot -p123456
此时本地数据库中将会复原这一段sql操作记录。
三、将恢复数据库迁移到服务器上
-
借助dbheaver提供的数据库工具进行迁移操作。
-
迁移成功