天天看点

mysql5.7防止误操作数据丢失恢复binlog学习

docker创建mysql容器

mkdir -p /home/mysql
docker cp cdcbca2ad794:/etc/mysql/mysql.conf.d/ /home/mysql/
docker cp cdcbca2ad794:/var/log /home/mysql/
           
docker run -p 3306:3306 --name mysql_binlog  -d  -v /home/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/mysql/log/:/var/log  -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
           

使用navicat工具连接数据库查看数据库是否开启binlog日志

mysql5.7防止误操作数据丢失恢复binlog学习

OFF表示没有开启,现在我们通过开启binlog日志

vim /home/mysql/mysql.conf.d
           
mysql5.7防止误操作数据丢失恢复binlog学习

第一个参数:mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index.

第二个参数 :用的如果是5.7及以上版本的话,重启mysql服务会报错,这个时候我们必须还要指定这样一个参数,随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了.

mysql5.7防止误操作数据丢失恢复binlog学习
mysql5.7防止误操作数据丢失恢复binlog学习

本地安装binlog2sql.tar.gz

下载地址:https://pan.baidu.com/s/1qYQ2PPy

tar xvf binlog2sql.tar.gz
cd binlog2sql/binlog2sql_dependencies/
tar xvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
cd ../
tar xvf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
cd ../
pip install *.whl mysql-replication-0.9.tar.gz
cd /binlog2sql/binlog2sql
           

按时间导出对于某个库某个表的操作sql语句

mysql5.7防止误操作数据丢失恢复binlog学习

生成回滚语句

mysql5.7防止误操作数据丢失恢复binlog学习

按pos点导出对于某个库某个表的操作sql语句

python binlog2sql.py  -u root -p 1234  -d binlog  -t test --start-file mysql-bin.000003  --start-position=7009833 --stop-position=7010075
           
mysql5.7防止误操作数据丢失恢复binlog学习

生成回滚语句

python binlog2sql.py --flashback -u root -p 1234  -d binlog  -t test --start-file mysql-bin.000003  --start-position=7009833 --stop-position=7010075
           
mysql5.7防止误操作数据丢失恢复binlog学习

继续阅读