MySQL删除数据之后回滚数据
1. 用Navicat数据迁移功能
1. 数据传输产生数据丢失
主要执行的信息注意: 在公司开发中一定要禁用Navicat的数据传输, 这样会导致数据不可恢复, binlog也救不了你
注意: 在公司开发中一定要禁用Navicat的数据传输, 这样会导致数据不可恢复, binlog也救不了你
注意: 在公司开发中一定要禁用Navicat的数据传输, 这样会导致数据不可恢复, binlog也救不了你
2.不小心手动删除了数据怎么办
1. 如果你们公司电脑开启了binlog, 那么不要怕, 可以直接利用binlog进行回滚
要查询某个时间段内某个数据库内的操作日志, 将SQL输入到某个文件中
mysqlbinlog --no-defaults --database=#数据库名# --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" #binlog文件名# > #输出的文件名称及地址#
如果是本地查询命令
mysqlbinlog --no-defaults --database=#数据库名# --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" #binlog文件名#
如果需要过滤
mysqlbinlog --no-defaults --database=#数据库名# #binlog文件名# |grep insert/update/delete |more
python -m pip install --upgrade pip #安装pip
pip install pymysql #安装pymysql
MYSQL Server必须设置以下参数开启binlog
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
账户需要的最小权限
解析出标准SQL
python binlog2sql.py -h127.0.0.1 -P3306 -uroot -proot -dtest -t test3 test4 --start-file=#mysql-bin文件名称# > 输出文件地址
解析出回滚SQL
python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uroot -proot -dtest -ttest3 --start-file=#mysql-bin文件名称# --start-position=763 --stop-position=1147 > 输出文件地址
mysql连接配置