Home

Awesome

php-mysql-replication

参考python版本:https://github.com/noplay/python-mysql-replication

运行环境

目前只支持数据库utf8编码
php版本>=5.4
mysql版本>=5.1
需要安装php sockets扩展
运行用户需要有创建文件的权限

Config.php 配置文件

运行run.php 目前只支持row模式
项目中 可以用supervisor监控 run.php 进程
Connect::analysisBinLog bool true存储当前的file pos
本例中 通过读取binlog存储到kafka中 kafka版本 0.8.2.0
kafka-client 用到了github开源的一个项目 https://github.com/nmred/kafka-php
BinLogPack.php打印了事件类型

配置mysql,打开mysql的binlog,配置binlog格式为row

log-bin=mysql-bin
server-id=1
binlog_format=row

持久化

file-pos 保存了当前读取到binlog的filename和pos,保证程序异常退出后能继续读取binlog
新项目运行时 要删除file-pos,从当前show master status,读取到的filename pos开始读取
可以设置file-pos,程序则从当前设置的位置读取binlog

流程

image

联系我

任何问题可以mail
zhaozhiqiang1734@163.com
QQ:838⑤91688