binlog2sql 工具安装使用及问题汇总
1、环境准备(版本是我安装的版本,供参考):
Git
Python 3.9.5
Pip 22.0.4
2、下载binlog2sql源码:
git clone https://github.com/danfengcao/binlog2sql.git
3、安装工具需要的依赖:
cd binlog2sql //进入下载的源码目录里
pip install -r requirements.txt
4、使用demo
binlog2sql一般是在mysql回滚的时候使用,本篇文章主要介绍该工具的安装和排错,如果想了解具体的回滚流程,可以参考这篇文章:https://blog.csdn.net/Interest1_wyt/article/details/115028429
生成回滚sql命令demo:
python E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py -h127.0.0.1 -P3306 -uroot -p'123456' -d test -t t1 --start-file E:\Program Files (x86)\mysql-8.0.23-winx64\data\binlog.000069 --start-position 1105 --stop-position 1343 -B
更多用法可以参考binlog2sql源码中的readme.md文件
5、安装使用中遇到的问题汇总
问题一:Access denied for user 'root'@'localhost' (using password:YES)
这个问题是因为我的root账户只能本地访问,所以这里需要修改下root账户可以远程访问:
update user set host = '%' where user = 'root';flush privileges;
注:如果使用其它账户,要确保使用的mysql账户信息要有SELECT, REPLICATION SLAVE, REPLICATION CLIENT等权限
问题二:python 连接 mysql 数据库出现 keyerror: 255
Traceback (most recent call last):
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py", line 145, in <module>
binlog2sql = Binlog2sql(connection_settings=conn_setting, start_file=args.start_file, start_pos=args.start_pos,
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py", line 46, in __init__
self.connection = pymysql.connect(**self.conn_setting)
File "E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\__init__.py", line 90, in Connect
return Connection(*args, **kwargs)
File "E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\connections.py", line 706, in __init__
self.connect()
File "E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\connections.py", line 931, in connect
self._get_server_information()
File "E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\connections.py", line 1269, in _get_server_information
self.server_charset = charset_by_id(lang).name
File "E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\charset.py", line 38, in by_id
return self._by_id[id]
KeyError: 255
该问题主要原因是MySQL8.0更新了很多字符集,但是这些字符集长度超过255了,所以旧版的PyMySQL不支持长度超过255的字符。解决方法是更新该工具包:
pip install --upgrade PyMySQL
问题三:ModuleNotFoundError: No module named 'pymysql.util'
这是因为没有'pymysql ,这里我们防止本地有包冲突,所以先卸载再安装:
PS E:\Program Files (x86)\mysql-8.0.23-winx64\data> pip uninstall pymsql
WARNING: Skipping pymsql as it is not installed.
PS E:\Program Files (x86)\mysql-8.0.23-winx64\data> pip install pymysql==0.9.3
Collecting pymysql==0.9.3Downloading PyMySQL-0.9.3-py2.py3-none-any.whl (47 kB)---------------------------------------- 47.7/47.7 KB 480.7 kB/s eta 0:00:00
Installing collected packages: pymysqlAttempting uninstall: pymysqlFound existing installation: PyMySQL 1.0.2Uninstalling PyMySQL-1.0.2:Successfully uninstalled PyMySQL-1.0.2
Successfully installed pymysql-0.9.3
问题四:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 39: invalid start byte
E:\Program Files\PYTHON3.9.5\lib\site-packages\pymysql\cursors.py:170: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 1")
result = self._query(query)
Traceback (most recent call last):
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py", line 150, in <module>
binlog2sql.process_binlog()
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py", line 121, in process_binlog
self.print_rollback_sql(filename=tmp_file)
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql.py", line 129, in print_rollback_sql
for line in reversed_lines(f_tmp):
File "E:\IdeaProjects\binlog2sql\binlog2sql\binlog2sql_util.py", line 249, in reversed_lines
block = block.decode("utf-8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 39: invalid start byte
根据报错信息可以知道,这个跟binlog2sql工具里的binlog2sql.py代码有关,网上有好几种解决方案,这里贴一种我使用没问题的方案:即修改binlog2sql源码中的binlog2sql_util.py指定字符编码的代码(注意有好几行都涉及到编码,但是我们不用全修改,仔细对照下图,千万别改错了),修改的内容如下图:
参考链接:
https://blog.csdn.net/Evan_Hsu/article/details/80182679
https://blog.csdn.net/weixin_43288999/article/details/119104027
binlog2sql 工具安装使用及问题汇总相关推荐
- 磁盘测试工具FIO工具安装和使用方法
一.FIO工具安装: 1.查看fio是否安装 rpm –qa|grep fio 2.源码安装(2.3.4任选一个,推荐方法:3.rpm 的二进制安装) 官网地址:http://freecode.com ...
- jar java classpath_win7中java编程工具安装 java环境变量设置
win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...
- VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...
- yum工具安装Nginx
2019独角兽企业重金招聘Python工程师标准>>> Nginx官网:nginx.org ,选择稳定的版下载安装,此处我选择下载1.14.2版本,以下是yum工具安装方式: yum ...
- 虚拟机在安装svn时 认证密码一直报错_研路同行|安装虚拟机到安装GAMIT教程步骤汇总...
(一路遇见,一路再见) 全文共计2258字,图片共计1张 用心阅读控制在10分钟 --今日图文-- Gamit/gLOBK软件是一款高精度GNSS数据处理软件,目前支持GPS/BDS/GLONASS/ ...
- 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...
- Windows下MetaMap工具安装
Windows下MetaMap工具安装 一.Main MetaMap安装 Prerequisties 12G磁盘空间 JAVA6 or newer JRE or SDK installed Downl ...
- arcgis超级工具安装教程_【软件安装管家】Autodesk卸载官方工具安装教程
点击上面"蓝字"关注,获取更多资源!用心分享 一黑一白我不是灵魂导师一个分享软件/影视/音乐/网站/教程的公众号星标/置顶公众号?因公众号改版,不再按时间推送文章,为不错过最新资源 ...
- 【报表技术】IReport 图形化报表开发工具安装教程
[报表技术]IReport 图形化报表开发工具安装教程 JasperReport简单介绍 JasperReport是一个强大.灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML, ...
最新文章
- device刷机包 适合的android_nexus6 刷 LineageOS 17.1 实战
- 软件测试2019:第七次作业—— 用户体验测试
- 实践1-qq邮箱主页
- 【最佳解法】剑指 Offer 32 - III. 从上到下打印二叉树 III
- java解析静态AIS原始数据
- soundbar未来发展_智能电视时代 Soundbar未来发展之路
- 2018/7/17-纪中某C组题【jzoj4024,jzoj4025,jzoj2136,jzoj2137】
- Oracle中对象权限与系统权限revoke
- springboot2 war页面放在那_亚马逊产品页面如何优化?这些技巧要知道
- 全球首发!惯性导航导论(剑桥大学)第六部分
- zabbix常见配置集合
- 认识 ARM、FPGA
- hdu Train Problem I 栈的基本应用
- 计算机无法识别psp usb设备,PSP降级导致USB连接电脑识别问题解决办法
- win7 x64怎么枚举所有快捷键呢
- 栈(Stack)——后进先出(LIFO)的数据结构(Data Structures)
- 国庆马上到了,用python实现国旗头像
- [TopCoder] SRM 587 DIV 2, 250p, 500p, 1000p, Solution
- 使用ArcMap 生成TPK和geodatabase包
- 开源运维管理平台(ows) damo版本源码发布