記錄一次阿里云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目錄執行還原語句,查看數據庫成功還原