# php_sync_by_binlog **Repository Path**: zsl_study/php_sync_by_binlog ## Basic Information - **Project Name**: php_sync_by_binlog - **Description**: 通过binlog,同步数据库, - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-01-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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](https://github.com/fengxiangyun/mysql-replication/blob/master/mysql-replication.png) ## 联系我 任何问题可以mail zhaozhiqiang1734@163.com QQ:838⑤91688