Canal原理:
- canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
- mysql master收到dump请求,开始推送binary log给slave(也就是canal)
- canal解析binary log对象(原始为byte流)
三、MySQL开启BinLog日志
注意: 由于不同环境,不同版本的MySQL可能存在差异,如果不能按下述方法开启binlog日志,那么就自行百度开启binlog步骤
3.1 检查MySQL是否有开启binlog日志
show variables like ‘log_bin’;
如果显示如下,则代表未开启binlog日志
3.2开启binlog日志步骤
#1.编辑MySQL配置文件(linux下的修改命令)
vim /etc/my.cnf
#2.添加配置
[mysqld]
log-bin=mysql-bin # 开启binlog
binlog-format=ROW # 选择ROW模式
server_id=1 # 配置MySQL replaction需要定义,不和Canal的slaveId重复即可
#3.重启MySQL,再次使用下述命令查看是否开启binlog
show variables like ‘log_bin’;
show binary logs;
show variables like ‘binlog_format%’
windows环境下:
重启MySQL服务:
再次使用命令查看是否已经开启binlog日志,ON代表已经成功开启
**提示:**binlog文件的位置:如果在修改my.ini的binlog时给的是全路径,那么生成的日志文件就在指定的目录下;如果添加配置时只给一个名字,那么生成的binlog日志的位置为
四、Canal的配置和启动
4.1 下载Canal
Canal的下载:
- 官方文档:https://git