- Canal
目前主要支持了MySQL - 步骤
2.1 本例分别在Linux 系统和本地Windows 系统创建数据库,表;其中表名与结构相同,以实现Linux 数据库更新同步到本地数据库
2.2 开启Linux 系统中Mysql binlog功能
执行命令 show variables like ‘log_bin’ 查看log_bin 状态,如为OFF,则需要修改配置文件 my.cnf 来开启binlog;
命令vi /etc/my.cnf,追加内容:
log-bin=mysql-bin #binlog文件名
binlog_format=ROW #选择row模式
server_id=1 #mysql实例id,不能和canal的slaveId重复
重启Mysql,再次查看log_bin 状态
2.3 在Linux 系统中Mysql 里面添加一个用户,设置可远程访问的权限
CREATE USER ‘canal’@’%’ IDENTIFIED BY ‘canal’;
GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’;
FLUSH PRIVILEGES;
2.4 在Linux 系统安装Canal
解压tar包后,进入文件夹修改配置文件vi conf/example/instance.properties
#配置数据库信息
canal.instance.master.address=当前Linux系统IP:Mysql端口
#配置数据库用户名与密码(2.3添加了canal用户;此处需要配置有远程访问权限的用户)
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
#配置需要同步的数据库表规则,例如只是同步某一表
canal.instance.filter.regex=数据库名.表名
#如需同步所有库所有表,则:
#canal.instance.filter.regex=.\…
2.5 启动Canal
进入bin目录,执行./startup.sh - 编写代码
3.1 依赖
< dependency>
< groupId>com.alibaba.otter< /groupId>
< artifactId>canal.client< /artifactId>
< /dependency>
3.2 编写canal客户端类
3.3 创建启动类,监听canal客户端