在前一篇文章有提到过Canal的原理,所以这里就不做多叙述
Canal是伪装成Mysql的从服务,监听Mysql主服务的binlog日志,实现数据同步,所以我们需要配置开启允许binlog日志主从同步
编辑mysql的配置文件
1 | vim /etc/my.cnf |
添加我标记的这段配置
1 2 3 | log-bin=/var/lib/mysql/mysql-bin #日志记录到指定位置 binlog-format=ROW #记录只要数据发生修改,就记录到日志中 server_id=1 #mysql主从复制的唯一id,不允许重复 |
需要注意点:配置一定要放在[mysqld]标签下,否则不生效
那么如何查看,是否成功开启binlog日志了
1 | show variables like '%log_bin%'; |
为ON则成功开启binlog日志
我们也可以进入指定的日志目录下,查看日志
1 | cd /var/lib/mysql |
如下就是mysql自动生成的binlog日志
接下来添加canal账号,或者直接使用自己的Root账号都行
1 2 3 4 5 6 | 账号不能通过远端添加,只能在内部mysql添加,如果权限足的话,也可以远端添加用户 drop user 'canal'@'%'; ##注意,这里如果没有创建canal账号,则会报错,所以没有创建则直接忽略这一步 CREATE USER 'canal'@'%' IDENTIFIED BY 'canal'; grant all privileges on *.* to 'canal'@'%' identified by 'canal'; flush privileges; |
如下图,我这里已经添加用户成功了
进入mysql库的user表,查看刚所添加的用户的权限是否都是Y,如不是,否则接下来的操作会很不方便
接下来需要下载canal
可以在GitHub上,找到Canal的官网下载canal包,我这里目前下载是最新版本
1 | wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.deployer-1.1.5-SNAPSHOT.tar.gz |
如果提示说找不到wget命令
1 | yum install -y wget |
如下图,已下载成功
创建一个文件夹
1 | mkdir canal-server |
解压canal包到指定文件夹下
1 | tar -zxvf canal.deployer-1.1.5-SNAPSHOT.tar.gz -C canal-server/ |
解压成功
进入canal-server文件夹,解压后,基本就如下图所示了
那我们就开始来构建canalServer端,修改server的配置文件
1 2 | 当前目录下输入下面命令 vim conf/example/instance.properties |
修改完成后,保存
返回上两级,进入bin目录,进行启动我们的canalserver端
1 | ./startup.sh |