:::info canal-admin为选装,就是canal的一个操作页面,如果不装可以选择跳过安装canal-admin的部分 :::
拉取镜像
docker pull canal/canal-admin
docker pull canal/canal-server
下载官方启动脚本
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run_admin.sh
网络不行可以点击这里下载
启动canal-server的脚本:run.sh
启动canal-admin的脚本run_admin.sh
这个脚本其实可下可不下,最终他都是帮我们拼成了docker run语句执行
admin数据库初始化脚本
下载Canal-admin的初始化数据库
https://raw.githubusercontent.com/alibaba/canal/master/canal-admin/canal-admin-server/src/main/resources/canal_manager.sql
网络不行可以点击这里下载:canal-admin.sql
启动Canal-admin
sh run_admin.sh \
-e server.port=8089 \
-e canal.adminUser=admin \
-e canal.adminPasswd=admin \
-e spring.datasource.address=192.168.1.5:3306 \
-e spring.datasource.database=canal_manager \
-e spring.datasource.username=anin \
-e spring.datasource.password=123456
- canal.adminUser=admin server端连接admin端的身份账号
- canal.adminPasswd=admin server端连接admin端的身份密码
- spring.datasource.xx admin端连接外置数据库的配置
这个启动命令等同于
docker run -d -it
-h 192.168.1.5 \
-e server.port=8089
-e canal.adminUser=admin \
-e canal.adminPasswd=admin \
-e spring.datasource.address=192.168.1.5:3306 \
-e spring.datasource.database=canal_manager \
-e spring.datasource.username=anin \
-e spring.datasource.password=123456 \
--name=canal-admin \
-p 8089:8089 \
-m 1024m \
canal/canal-admin
:::info
初始化SQL脚本里会默认创建canal_manager的数据库,如果使用默认初始化需要使用root等有超级权限的账号。
也可以自己初始化数据库数据库完成之后,再配置数据库连接信息
注意:canal-admin的mysql账号需要有读写权限 :::
查看admin日志
vi logs/admin.log
2019-08-31 15:43:38.162 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8089 (http)
2019-08-31 15:43:38.180 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8089"]
2019-08-31 15:43:38.191 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2019-08-31 15:43:38.194 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet Engine: Apache Tomcat/8.5.29
....
2019-08-31 15:43:39.789 [main] INFO o.s.w.s.m.m.annotation.ExceptionHandlerExceptionResolver - Detected @ExceptionHandler methods in customExceptionHandler
2019-08-31 15:43:39.825 [main] INFO o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [public/index.html]
此时代表canal-admin已经启动成功,可以通过 http://127.0.0.1:8089/ 访问,默认密码:admin/123456
启动Canal-server(admin管理模式)
admin管理模式启动并运行canal-server
单机模式
以单机模式为例
sh run.sh -e canal.admin.manager=192.168.1.5:8089 \
-e canal.admin.port=11110 \
-e canal.admin.user=admin \
-e canal.admin.passwd=4ACFE3202A5FF5CF467898FC58AAB1D615029441 \
-e canal.instance.master.address=192.168.1.5:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal
- canal.admin.manager=192.168.1.5:8089 canal-admin的地址
- canal.admin.passwd mysql5的加密,明文为上面设置的admin,如果修改需要对应 在线加密
集群模式
集群模式需手动创建一个集群,并且提供zookeeper地址,然后启动参数加上集群名称即可,配置与单机模式一样,只不过一个集群共用一个server配置sh run.sh -e canal.admin.manager=192.168.1.5:8089 \
-e canal.admin.port=11110 \
-e canal.admin.user=admin \
-e canal.admin.passwd=4ACFE3202A5FF5CF467898FC58AAB1D615029441 \
-e canal.instance.master.address=192.168.1.5:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal
-e canal.admin.register.cluster=test
启动Canal-server(不使用admin管理)
启动成功后,刷新admin页面的server列表,会出现刚刚启动的canal-serverdocker run --name canal \
-e canal.instance.master.address=192.168.1.5:3306 \
-e canal.instance.dbUsername=canal \
-e canal.instance.dbPassword=canal \
-p 11111:11111 \
-d canal/canal-server
canal-admin的操作见文档:https://github.com/alibaba/canal/wiki/Canal-Admin-Guide