前言:不看不知道一看吓自己一跳,原来真的可以通过工具实现对mysql增量数据的获取,这里着重讲解一下canal中win下结合php的使用
什么是canal
- canal是用来实现增量数据库MySQL binlog 增量订阅&消费组件即简单来说就是记录你的数据库的增删改查后同步的实现。例如mysql数据变化了,自动触发同步redis这样你就不存在说要redis和mysql数据不同步的问题啦,这只是一个小小的场景,功能有待发倔
怎么安装和运行
- https://github.com/alibaba/canal](https://github.com/alibaba/canal //项目地址
- 在release中选择canal.deployer-xxx.tar.gz这个版本下载到window下,//注意这里这个坑害我一直以为只能在linux下使用,但是不是的window也是可以兼容的
- 下载完成后
- https://github.com/alibaba/canal/wiki/QuickStart //官方文档中已经很详细了根据这个来配置启动参数
canal在php的应用
- https://github.com/xingwenge/canal-php //上面我们已经启动了canal的客户端,因此要在php端把监听的动作给做起来
需要注意的几点问题
- 要用mysql root的账号登录否则会出错报错 show master status error等等的问题
- 如果当你启动canal-php服务端后,会不断读取旧的数据一直刷个不停,此时你应该这样做将instance.properties文件所在目录中的meta.dat文件删除,然后重启,问题解决
- nohup php test.php & //linux下后台执行否则窗口退了服务就会停止
结束语:一直以为tar.gz是linux的产物,但是最终在window下运行了,这个工具我暂时用来的是让mysql自动同步redis非常赞,官方文档其实也讲得很详细了,最后如果你有问题欢迎下方留言
网友评论