canal环境部署
mysql开启binlog模式
1、查看当前mysql是否开启binlog模式。
SHOW VARIABLES LIKE '%log_bin%'
- 如果log_bin的值为OFF是未开启,为ON是已开启。若未开启,修改/etc/my.cnf文件
2、修改/etc/my.cnf 需要开启binlog模式。
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
3、进入mysql
mysql -h localhost -u root -p
4、创建账号 用于测试
create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
canal服务端安装配置
1、下载canal
https://github.com/alibaba/canal/releases/tag/canal-1.0.24

2、下载之后 上传到linux系统中,解压缩到指定的目录中(演示存放在 /usr/local/canal 下)
- 解压后的目录如下

3、修改 exmaple下的实例配置
vi conf/example/instance.properties

4、指定读取位置
- 进入mysql中执行下面语句查看binlog所在位置
mysql> show master status;
显示如下:
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
- 如果file中binlog文件不为 mysql-bin.000001 可以重置mysql
mysql> reset master;
vim /usr/local/canal/conf/example/meta.dat
"journalName":"mysql-bin.000001","position":120,"
2019-06-17 19:35:20.918 [New I/O server worker #1-2] ERROR
c.a.otter.canal.server.netty.handler.SessionHandler -
something goes wrong with channel:[id: 0x7f2e9be3, /192.168.200.56:52225 => /192.168.200.128:11111], exception=
java.io.IOException: Connection reset by peer
5、启动服务:
[root@localhost canal]# ./bin/startup.sh
5、查看日志:
cat /usr/local/canal/logs/canal/canal.log

- 能查看到以上日志则代表canal服务已经启动成功了