文章目录
Cannal安装步骤
此次安装命令皆是以管理员身份运行
1.通过docker创建一个新网络
①创建名为mysql-test的网络
docker network create mysql-test#查询创建的网络信息docker network ls#查询当前网络的信息docker network inspect mysql-test
②让mysql加入此网络
docker network connect mysql-test mysql
2.mysql相关
2.1 开启mysql主从配置
1、修改配置文件
打开mysql挂载目录下( /mydata/mysql/conf )的 my.cnf 配置文件,添加以下配置
# start binlog server-id=1log-bin=/var/lib/mysql/mysql-binbinlog-do-db=test
配置解读:
① server-id :指定当前服务的id,必须指定,否则会报错
② log-bin :设置binlog文件的存放地址和文件名,叫做mysql-bin,此处指定的目录前缀是mysql容器的数据存放目录,所以可以在挂载目录中看到相关的文件,命名格式是mysql-bin.000001开始慢慢叠加
③ binlog-do-db :指定针对哪个数据库记录binlog的events事件,此处记录test库
2、重启mysql
docker restart mysql
2.2 新建canal用户并设置权限
①创建canal专用用户,进行权限隔离
create user canal@'%' IDENTIFIED by 'canal';GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%' identified by 'canal';FLUSH PRIVILEGES;
②效果如下
3.拉取Cannal镜像
## 拉取版本为v1.1.5的canaldocker pull canal/canal-server:v1.1.5
4.运行Canal
4.1、启动命令
docker run -p 11111:11111 --name canal \-e canal.destinations=test \-e canal.instance.master.address=mysql:3306 \-e canal.instance.dbUsername=canal \-e canal.instance.dbPassword=canal \-e canal.instance.connectionCharset=UTF-8 \-e canal.instance.tsdb.enable=true \-e canal.instance.gtidon=false \-e canal.instance.filter.regex=test\\..* \--network mysql-test \--restart=always \-d canal/canal-server:v1.1.5
启动命令说明:
4.2、命令解读
① -p :指定端口
② -e :指定配置文件的配置信息。此处主要有两个配置文件在起作用,分别是 canal.properties 和 instance.properties 这两个配置文件,前缀是 canal. 的修改就是 canal.properties 这个配置文件的,前缀是 canal.instance 修改的就是 instance.properties 这个配置文件的
③ canal.destinations:指定了实例的名称,决定了instance实例的配置文件存放目录
④ canal.instance.master.address :指定了mysql的地址,正常需要ip,此处由于会将mysql和canal放在一个网络中,所以可以直接使用mysql替代
⑤ canal.instance.filter.regex:此处指定只过滤test这个数据库的binlog数据
⑥ network mysql-test:指定网络是步骤1创建的网络
⑦ restart=always :将canal设置为docker启动时自启,可要可不要
⑧ -d :指定步骤2拉取的镜像名称以及版本
4.3、查看容器状态
# 查看启动日志docker logs canal# 查看目前运行容器docker ps# 启动失败时查看容器状态docker ps -a
4.4、相关配置调整(可做可不做)
①将canal配置文件进行拷贝
# canal.properties & instance.properties# 注意,instance.properties文件是在canal.destinations这个配置指定的目录作为前缀下面docker cp canal:/home/admin/canal-server/conf/canal.properties /mydata/canal/confdocker cp canal:/home/admin/canal-server/conf/test/instance.properties /mydata/canal/conf
②根据个人需要修改配置之后,将原有的canal容器停止并删除,然后重新启动的时候使用-v进行文件绑定,进行文件绑定时务必确保文件是存在的。
# 停止并删除容器docker stop canaldocker rm canal#重新运行并指定docker run -p 11111:11111 --name canal \-e canal.destinations=test \-e canal.instance.master.address=mysql:3306 \-e canal.instance.dbUsername=canal \-e canal.instance.dbPassword=canal \-e canal.instance.connectionCharset=UTF-8 \-e canal.instance.tsdb.enable=true \-e canal.instance.gtidon=false \-e canal.instance.filter.regex=test\\..* \-v /mydata/canal/conf/canal.properties:/home/admin/canal-server/conf/canal.properties \-v /mydata/canal/conf/instance.properties:/home/admin/canal-server/conf/test/instance.properties \--network mysql-test \--restart=always \-d canal/canal-server:v1.1.5