canal是阿里巴巴的来源项目。我们可以通过配置binlog实现数据库监控,得到数据库表或者数据的更新信息。
参考我的文档前先去官网看下,可能已经支持更高版本的MySQL了
1. 查看官方开源项目
2. 下载最新的canal.deployer-XXXX-SNAPSHOT.tar.gz
3. 查看wiki
ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)
所以需要安装mysql5.7以下的版本稳妥些
4. 去MySQL官网下载mysql并安装
5. 查看mysql安装目录
6. 复制一个my-default.ini改名叫my.ini
修改对应位置:
添加:
#添加这一行就ok
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#配置mysql replaction需要定义,不能和canal的slaveId重复
server_id=1
character-set-server=utf8
collation-server=utf8_general_ci
添加:
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
7. 重启mysql
.6\bin>sc delete mysql
\bin>net stop mysql
\bin>mysqld --install mysql --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my.ini"
8. 查看是否开启binlog
show variables like'log_%';
On:表示已开启
9. 创建数据库canal用户
官网是%,%是对所有非本地主机授权,不包括localhost。由于我们是在windows本机上做,所以需要配置为localhost.
10. 修改canal-deploy-> conf\example里的instance.properties
这两个新添的配置可以注解调,还不太明白具体的用处
canal.instance.tsdb.dbUsername=canal
canal.instance.tsdb.dbPassword=canal
注:这里的slaveId=1234不能和my.ini的一样
11. 在cmd下启动canal-deploy