安装mysql5.7,并开启binlog
开启binlog
find / -name my.cnf 找到这个文件
添加几行
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
重启服务
输入命令查看,如下图表示成功
docker安装canal-admin
Canal的github wiki地址
这是一个管理页面,用来管理canal集群,添加实例,服务,更改配置等
docker pull canal/canal-admin:v1.1.4
docker run -d --name canal-admin -p 8089:8089 --restart=always canal/canal-admin:v1.1.4
修改配置
安装完成后即可在浏览器查看 http://127.0.0.1:8089,默认账户名admin 密码123456
canal集群用一张图表达
docker安装canal-server
如果是canal集群,则需要安装zookeeper,这里只是单机版
docker pull canal/canal-server:v1.1.4
docker run -d --name canal-server --restart=always -p 11111:11111 canal/canal-server:v1.1.4
修改canal-server的配置
密文获取方式(记得去掉*)
mysql> select password('admin');
+-------------------------------------------+
| password('admin') |
+-------------------------------------------+
| *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)
使用自带的example测试功能
vi canal-server/conf/example/instance.properties
修改以下内容
# position info
canal.instance.master.address=mysql5.7:3306 # 这里是你要监听的数据库
# username/password #你要监听的数据库中的账号和密码,如果没有,自己去创建用户
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
# table regex
canal.instance.filter.regex=.*\\..* # 正则表达式,表示监听的哪个库,哪个表,这里是所有
# mq config
canal.mq.topic=example # 这里取个名字,默认是example
去canal-admin页面配置
server管理-->新建server-->确定
注意:
经测试,V1.1.4版本admin不可以通过web-UI页面配置创建instance,必须去canal-server里把example文件夹cp一份,并修改里面的配置