• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于python的mysql复制工具详解

    一 简介

    python-mysql-replication 是基于python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并基于此做其他业务需求。比如数据更改时失效缓存,监听dml事件通知下游业务方做对应处理。

    其项目信息

    二 实践

    2.1 安装配置

    获取源代码

    git clone http://www.github.com/noplay/python-mysql-replication

    使用pip 安装

    pip install mysql-replication

    权限: 可以直接使用复制账号也可以使用其他账号,但是该账号必须 SELECT, REPLICATION SLAVE, REPLICATION CLIENT 权限

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'replicator'@'%' IDENTIFIED BY 'xxxxx';

    数据库日志相关的参数设置如下:

    log_bin=on ,binlog_format=row,binlog_row_image=FULL

    2.2 核心类介绍

    python-mysql-replication 的入口是类BinLogStreamReader(),我们在使用该工具时需要实例化一个BinLogStreamReader()对象 stream, BinLogStreamReader 通过 ReportSlave 向主库注册作为一个slave角色,用于接受MySQL的binlog广播 。有兴趣的可以研究其代码具体实现。

    该实例提供解析 binlog 各种事件的集合,每个事件也是一个对象。

    初始化BinLogStreamReader()实例需要使用的参数如下:

    2.3 如何使用呢?

    最简单的用法 脚本名 pyreplica.py

    开启两个窗口,一个窗口执行,另外一个窗口操作mysql 写入或者修改数据

    python pyreplica.py

    输出如下:

    2.3 拓展

    基于该工具提供的日志事件解析我们可以做很多事情,比较有名的工具 binlog2sql 利用该工具解析binlog 做数据回滚 。

    mysql-replication.py

    执行脚本结果 如下图

    除了解析binlog,我们还可以用python-mysql-replication 做数据全量加增量迁移。比如仅仅迁移某些大表而不是整个库的时候,可以用到。有兴趣的朋友可以想想大概的算法。

    总结

    以上所述是小编给大家介绍的基于python的mysql复制工具,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    您可能感兴趣的文章:
    • 由Python编写的MySQL管理工具代码实例
    • python实现读取excel写入mysql的小工具详解
    • Python操作MySQL数据库的简单步骤分享
    • Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
    • Python爬取腾讯疫情实时数据并存储到mysql数据库的示例代码
    • 解决python mysql insert语句的问题
    • python 在mysql中插入null空值的操作
    • python实现MySQL指定表增量同步数据到clickhouse的脚本
    • 用python开发一款操作MySQL的小工具
    上一篇:为什么说MySQL单表数据不要超过500万行
    下一篇:mysql语句查询用户权限过程详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于python的mysql复制工具详解 基于,python,的,mysql,复制,