Canal1.1.4的安装与使用
Canal
Canal,译意为水道/管道/沟渠。主要用途是基于MYSQL数据库增量日志解析,提供增量数据订阅和消费。
一、修改mysql的配置
目的:开启mysql的binlog日志功能
-
创建用户 ,这里用户名暂定为canal,密码:Canal@123456;
create user 'canal'@'%' identified by 'Canal@123456';
-
给用户授权,授权 *.*表示所有库;
grant SELECT, REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'canal'@'%' identified by 'Canal@123456';
如果mysql的版本为8.0.3以上版本,由于自MySQL 8.0.3开始,身份验证插件默认使用caching_sha2_password,此时Canal 1.1.4 会启动报错:caching_sha2_password Auth failed,故还需在mysql中修改canal用户对应的身份验证插件为mysql_native_password,其中canal为用户名,Canal@123456为密码。
select host,user,plugin from mysql.user ; ALTER USER 'canal'@'%' IDENTIFIED WITH mysql_native_password BY 'Canal@123456';
-
在mysql配置文件my.cnf或my.ini设置如下信息
# 打开binlog log-bin=mysql-bin # 选择ROW(行)模式 binlog-format=ROW
-
改了配置文件之后,重启Mysql,使用命令查看是否打开binlog模式;
show variables like 'log_bin';
-
查看binlog日志文件列表;
show binary logs;
-
查看正在写入的binlog文件;
show master status;
二、Canal的安装
-
解压canal.deployer-1.1.4.tar.gz,canal-1.1.4的下载地址
-
修改canal.deployer-1.1.4/conf/example/instance.properties文件;
2.1 修改canal.instance.master.address的值为要连接的数据库的ip地址# position info #数据库的ip地址 canal.instance.master.address=127.0.0.1:3306 canal.instance.master.journal.name= canal.instance.master.position= canal.instance.master.timestamp= canal.instance.master.gtid=
2.2 设置连接数据库的用户名和密码,这个用户名和密码是在Mysql中授权的用于伪装成Mysql slave的用户名和密码
# username/password
#用户名
canal.instance.dbUsername=canal
#密码
canal.instance.dbPassword=Canal@123456
canal.instance.connectionCharset = UTF-8
# enable druid Decrypt database password
canal.instance.enableDruid=false
2.3 配置监控规则
.*\…*表示监控所有数据库的所有表,也可以是具体的表名,用,隔开,比如test.t_people,test.user
# table regex
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=
-
修改canal.deployer-1.1.4/conf/canal.properties配置文件信息
#去掉下面一行的注释 #canal.instance.parser.parallelThreadSize = 16 ## disruptor ringbuffer size, must be power of 2 canal.instance.parser.parallelBufferSize = 256
-
启动canal
在canal.deployer-1.1.4/bin中运行startup文件。其中win10系统运行startup.bat,linux系统运行startup.sh
在startup.bat中还需删除如下的配置文件内容,否则会启动就报错-Dlogback.configurationFile="%logback_configurationFile%"
启动canal
三、Java客户端
- 引入Maven依赖
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId&