记录一次阿里云MySQL通过binlog日志进行数据回滚
问题描述由于阿里云远程mysql没有做安全策略 所以服务器被别人远程攻击把数据库给删除,通过查看binlog日志可以看到进行了drop操作,下面将演示通过binlog日志进行数据回滚操作。
1、查询是否开始binlog
#查看binlog是否开启 默认开启状态
show variables like '%log_bin%';
2、查询所有的Biglog日志
show binary logs; #查询所有的binlog日志
3、查询指定的binlog日志 并输出相关操作信息
通过文件大小也可以看出 我这个binlog日志mysql-bin.000002中所以查看指定的日志信息
show binlog events in 'mysql-bin.000002'; #查询指定的binlog日志 并输出相关操作信息
如果是最新的操作也可以查看最新的日志信息
show master status; #查询最新的binlog日志
4、查询binlog日志保存位置
show variables like '%log_bin_basename%'; #查询binlog日志保存位置
5、还原命令
进入mysql bin目录
./mysqlbinlog --no-defaults --start-position=234 --stop-position=1079434 /data/mysql/mysql-bin.000002 | ./mysql -h 127.0.0.1 -uroot -p123456
参数详解:
- ./mysqlbinlog:binlog执行命令
- –start-position=234 起始位置对应的Pos字段
- –stop-position=1079434 结束位置对应的Pos字段
- /data/mysql/mysql-bin.000002 binlog文件位置
- ./mysql -h 127.0.0.1 -uroot -p123456 连接mysql信息
现在想从第一次创建表到第一次删除库之前进行还原
所有起始位置就是234 结束位置就是1079434
进入mysql bin目录执行还原语句,查看数据库成功还原