前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >binlog2sql在MySQL8下的微调

binlog2sql在MySQL8下的微调

作者头像
保持热爱奔赴山海
发布2022-01-11 13:21:23
2910
发布2022-01-11 13:21:23
举报
文章被收录于专栏:数据库相关

binlog2sql 默认的requirements中的依赖包版本比较低,不适合mysql8,

需要用如下的几个包:

代码语言:javascript
复制
$ cat ../requirements.txt  
代码语言:javascript
复制
PyMySQL==0.9.3
wheel==0.29.0
mysql-replication==0.21

此外,为了防止遇到乱码问题,还需要改下 binlog2sql_util.py 里面

代码语言:javascript
复制
def reversed_lines(fin):
    """Generate the lines of file in reverse order."""
    part = ''
    for block in reversed_blocks(fin):
        if PY3PLUS:
            block = block.decode("utf-8","ignore")  # 修改后的写法
            #block = block.decode("utf-8")   # 原先是这个写法
        for c in reversed(block):
            if c == '\n' and part:
                yield part[::-1]
                part = ''
            part += c
    if part:
        yield part[::-1]

其它可以做的改动(非必须)

vim binlog2sql.py 修改下里面的取server_id的逻辑,以便支持多个binlog2sql同时处于--stop-never模式运行

代码语言:javascript
复制
import random


            cursor.execute("SELECT @@server_id")
            #self.server_id = cursor.fetchone()[0]
            self.server_id = random.randint(1024,4294967295)  # 随机造一个server_id连到主库去
            if not self.server_id:
                raise ValueError('missing server_id in %s:%s' % (self.conn_setting['host'], self.conn_setting['port']))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档