mysql8如何使用Binlog2SQL回滚/恢复数据
具体语句去官网看:https://github.com/danfengcao/binlog2sql,这里只介绍mysql8如何安装使用。
环境要求(重要):
PyMySQL: 0.9.3
whee :0.29.0
mysql-replication : 0.21
安装方式1:python3 可以 使用 pip3 install -r requirements.txt
shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
shell> pip3 install -r requirements.txt
安装方式2:手动安装
pip3 install pymysql==0.9.3
pip3 install mysql-replication==0.21
MySQL server必须设置以下参数:
[mysqld]
server_id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
我的mysql是在安装在docker了,直接进入Mysql容器内通过vim修改my.cnf文件就行
vim /etc/mysql/my.cnf
user需要的最小权限集合:
- select
- super/replication client
- replication slave
建议授权:
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO `root`@`%`;
使用方式(关键):
win10下使用
通过cmd
python binlog2sql.py -h127.0.0.1 -P 3306 -u root -p "mysql"
-d database1 -t table1 --start-file="mysql-bin.000002"
--start-datetime="2023-12-09 17:37:55" --stop-datetime="2023-12-09 17:49:55"
win10中必须使用双引号来包裹参数,不然会无法正确解析。这个很关键!
包括mysql密码,start-file等!!!
最后也是正常能够显示对应的sql语句。