1.在mysql中,需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式
1.1查找mysql的安装目录和my.ini目录
在本地mysql默认配置文件目录:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
select @@basedir; 安装目录
select @@datadir; 数据所在目录;
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
2.如果数据库作为cannl独立账户
CREATE USER canal IDENTIFIED BY ‘canal‘; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal‘@‘%‘; -- GRANT ALL PRIVILEGES ON *.* TO ‘canal‘@‘%‘ ; FLUSH PRIVILEGES;
3.conf下的配置文件instance.properties
## mysql serverId , v1.0.26+ will autoGen
canal.instance.mysql.slaveId=1234
# enable gtid use true/false
canal.instance.gtidon=false
# position info
canal.instance.master.address=127.0.0.1:3306
# table meta tsdb info
canal.instance.tsdb.enable=true
# username/password
canal.instance.dbUsername=root
canal.instance.dbPassword=root
# table regex
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=
4.指定监控具体的数据库
使用Perl正则表达式. 多个正则之间以逗号(,)分隔,转义符需要双斜杠(\\) 1 所有表:.* or .*\\..* 2 指定databasename下所有表: databasename\\..* 3 databasename下的以test开头的表:databasename\\.test.* 4 databasename下的具体的表:canal.test_user 5 组合使用:databasename\\..*,test.test_table1,test.test_table2(逗号分隔)
感谢大佬的原文地址:https://www.cnblogs.com/eason-d/p/9300754.html
5.客服端实例:
参考原文https://github.com/alibaba/canal/wiki/QuickStart
6.运行时特别注意,如果更换了信息需要把对应的example文件夹下的,
都要删除掉,保留自己的配置即可
原文:https://www.cnblogs.com/zxh06820/p/12653426.html