概述
Canal使用
什么是Canal
简单来说Canal是用于读取binlog日志的工具(太简单了)。
如果需要对数据做同步,可以使用canal。
安装Canal
- 准备工作
-
binlog:开通binlog日志,以及canal用户
python
[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
-
设置canal权限
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; FLUSH PRIVILEGES;
-
安装canal
wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz --下载 mkdir /tmp/canal --创建目录 tar zxvf canal.deployer-$version.tar.gz -C /tmp/canal --解压
-
修改配置文件
vi conf/example/instance.properties
## mysql serverId canal.instance.mysql.slaveId = 1234 ->这个id随便起。不能和my_sql的server_id重复 # position info,需要改成自己的数据库信息 canal.instance.master.address = 127.0.0.1:3306 canal.instance.master.journal.name = canal.instance.master.position = ->其实position,不设置则从当前点开始查询 canal.instance.master.timestamp = #canal.instance.standby.address = #canal.instance.standby.journal.name = #canal.instance.standby.position = #canal.instance.standby.timestamp = # username/password,需要改成自己的数据库信息 canal.instance.dbUsername = canal canal.instance.dbPassword = canal canal.instance.defaultDatabaseName = canal.instance.connectionCharset = UTF-8 # table regex canal.instance.filter.regex = .*\..* ->正则表达式,可以设置过滤条件,可以只查某个表的数据
启动Canal
sh bin/startup.sh
错误处理
启动canal时,有时候会报一些问题,查看日志,关于server_id的问题,发生在mysql没有设置server_id
有时候mySql重启之后,会出现startposition的问题,当前的positon已经是最后的positon。这种情况删除节点”example”之后,即可。如果还不行,重新安装一遍。
最后
以上就是鲤鱼冷风为你收集整理的Canal笔记Canal使用的全部内容,希望文章能够帮你解决Canal笔记Canal使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复