数据同步解决方案canal之canal服务端安装配置-个人记录

it2025-09-18  3

canal

对当前mysql内部数据改变进行监控,一旦发现它内部数据发生改变话,那么当前canal会把这些信息接收过来并且来完成后续的数据同步工作

阿里旗下的一个开源项目(内部基于java开发) 监控数据库内部数据的改变

环境部署

mysql开启binlog模式

开启binlog模式后,mysql才会对其内部的添加、修改、删除的这些操作都记录到相关的binlog日志中

查看当前mysql是否开启binlog模式(cmd)

命令:SHOW VARIABLES LIKE ‘%log_bin%’

如果log_bin的值为OFF是未开启,为ON是已开启。 开启mysql的binlog模式

修改 /etc/my.cnf配置文件

说明: log-bin=mysql-bin #开启日志监控 binlog-format=ROW #监控模式为ROW server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

注意: 如果查询mysql的binlog的log_bin是ON的,那就不用设置了

重启mysql,记得要查看下mysql的进程,有可能启动报错或者启动不了 使用cmd进入到mysql

命令:mysql -h192.168.200.128 -uroot -proot

创建账号,用于测试使用

测试账号 用户名:canal 密码:canal 账号权限:GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@’%’

使用root账号创建用户并授予权限

canal服务端安装配置(canal.deployer-1.1.3)

下载canal

https://github.com/alibaba/canal/releases/tag/canal-1.1.3

上传解压

上传canal.deployer-1.1.3.tar.gz到Linux,解压到 /usr/local/canal目录下(tar -zxvf canal.deployer-1.1.3.tar.gz )

修改exmaple下的实例配置

修改 /usr/local/canal/conf/example/instance.properties 指定读取位置

命令:show master status

查看File字段的binlog文件是否为mysql-bin.000001,如果不是mysql-bin.000001需要重置mysql

命令:rest master

查看canal配置文件

修改 /usr/local/canal/conf/example/meta.dat

"journalName":"mysql-bin.000001","position":154,"

注意:是重置后的数据

journalName 对应File的mysql-bin.000001 position 对应Position的154

注意(不一致可能导致问题)

如果 /usr/local/canal/conf/example的meta.data的"journalName":“mysql-bin.000001”,“position”:154,"配置与数据库不一致可能会导致以下错误 启动服务

/usr/local/canal/bin/startup.sh

查看日志

/usr/local/canal/logs/canal/ 命令:cat canal.log

这样就表示启动成功了,后面没有任何异常,如果报WARN警告不用管。

最新回复(0)