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日志
show variables like '%log_bin%'
OFF表示没有开启,现在我们通过开启binlog日志
vim /home/mysql/mysql.conf.d
第一个参数:mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index.
第二个参数 :用的如果是5.7及以上版本的话,重启mysql服务会报错,这个时候我们必须还要指定这样一个参数,随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了.
show master logs;
本地安装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语句
python binlog2sql.py -u root -p 1234 -d binlog -t test --start-file mysql-bin.000003 --start-datetime '2020-02-28 13:33:05' --stop-datetime '2020-02-28 13:33:07'
生成回滚语句
python binlog2sql.py --flashback -u root -p 1234 -d binlog -t test --start-file mysql-bin.000003 --start-datetime '2020-02-28 13:33:05' --stop-datetime '2020-02-28 13:33:07'
按pos点导出对于某个库某个表的操作sql语句
python binlog2sql.py -u root -p 1234 -d binlog -t test --start-file mysql-bin.000003 --start-position=7009833 --stop-position=7010075
生成回滚语句
python binlog2sql.py --flashback -u root -p 1234 -d binlog -t test --start-file mysql-bin.000003 --start-position=7009833 --stop-position=7010075