修改MySQL的配置
canal的原理是基于mysql binlog技术,所以这⾥⼀定需要开启mysql的binlog写⼊功能,配置 binlog模式为row
①修改MySQL配置⽂件
vi /etc/my.cnf
注意:⼀定要配置mysql的biglog模式为ROW
[mysqld] log-bin=mysql-bin #添加这⼀⾏就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
②重启mysql
service mysqld restart
③在mysql中添加一个新的用户
CREATE USER canal28 IDENTIFIED BY 'canal28';
可选:如果因为数据库的安全级别对密码要求比较高,无法正常创建用户,需要修改安全策略和密码策略在添加用户(生成环境不用修改,要使用复杂的密码)
set global validate_password_policy=LOW; set global validate_password_length=6;
④赋予权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal28'@'%';
⑤刷新权限
FLUSH PRIVILEGES;
⑥创建⼀个数据库
CREATE DATAbase db_canal CHARSET utf8;安装Canal
修改canal的主配置⽂件canal.properties
#canal跟kafka整合,将数据发送到kafka canal.serverMode = kafka #指定kafka broker地址 kafka.bootstrap.servers = linux01:9092,linux02:9092,linux03:9092 #数据发送kafka失败重试次数 kafka.retries = 10
修改canal的实例配置⽂件example/instance.propertie
#mysql数据库的地址 canal.instance.master.address=linux01:3306 #mysql用户名 canal.instance.dbUsername=canal28 #mysql密码 canal.instance.dbPassword=canal28 #注释掉使用默认的topic(将数据写入到默认的Topic) canal.mq.topic=example28 # dynamic topic route by schema or table regex #将db_canal的数据库的tb_user表发送到kafka的tp-user的topic #将db_canal的数据库的tb_orders表发送到kafka的tp-orders的topic canal.mq.dynamicTopic=tp-user:db_canal\.tb_user,tp-orders:db_canal\.tb_orders
启动Canal
bin/startup.sh



