1、官网地址
https://github.com/alibaba/canal
2、使用 canal 的时候,首选要下载安装一个 canal.deployer-1.1.4.tar.gz 进行解析 MySQL 的 binlog 日志,创建目录并解压。
mkdir canal
cd canal
tar -zxvf ../canal.deployer-1.1.4.tar.gz
然后修改 canal 的配置文件
vi conf/example/instance.properties
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
canal.instance.connectionCharset=UTF-8
canal.instance.defaultDatabaseName=test
3、配置 mysql 的 my.ini(windows)/ my.cnf(linux)文件,canal 支持 binlog 格式为 ROW 的模式,开启允许基于 binlog 文件的主从同步。找到 mysql 的 my.cnf 文件。
mysql –help | grep my.cnf
log-bin=mysql-bin
binlog-format=ROW
#注意不能重复
server_id=1
重启 MySQL
sudo service mysqld restart
注意:mysql 用户必须要有 REPLICATION SLAVE 权限。该权限授予 slave 服务器以该账户连接 master 后可以执行 replicate 操作的权利。如果没有权限,则使用 root 账户登录进 MySQL,执行下面的语句,创建用户,分配权限。
CREATE USER wang IDENTIFIED BY '123456';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'wang'@'%';
FLUSH PRIVILEGES;
检查一下 MySQL 的配置。确定版本和是否开启了 binlog 日志,以及日志格式。
show variables like 'binlog_format';
show variables like 'log_bin';
select version();
4、MySQL 启动后,就可以开启 canal 服务了。
cd /usr/local/canal
./bin/startup.sh
观察 canal 服务的日志,确保服务正常。
tailf /usr/local/canal/canal.log