:::info canal-admin为选装,就是canal的一个操作页面,如果不装可以选择跳过安装canal-admin的部分 :::

拉取镜像

  1. docker pull canal/canal-admin
  2. docker pull canal/canal-server

下载官方启动脚本

  1. wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh
  2. 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的初始化数据库

  1. https://raw.githubusercontent.com/alibaba/canal/master/canal-admin/canal-admin-server/src/main/resources/canal_manager.sql

网络不行可以点击这里下载:canal-admin.sql

启动Canal-admin

  1. sh run_admin.sh \
  2. -e server.port=8089 \
  3. -e canal.adminUser=admin \
  4. -e canal.adminPasswd=admin \
  5. -e spring.datasource.address=192.168.1.5:3306 \
  6. -e spring.datasource.database=canal_manager \
  7. -e spring.datasource.username=anin \
  8. -e spring.datasource.password=123456
  • canal.adminUser=admin server端连接admin端的身份账号
  • canal.adminPasswd=admin server端连接admin端的身份密码
  • spring.datasource.xx admin端连接外置数据库的配置

这个启动命令等同于

  1. docker run -d -it
  2. -h 192.168.1.5 \
  3. -e server.port=8089
  4. -e canal.adminUser=admin \
  5. -e canal.adminPasswd=admin \
  6. -e spring.datasource.address=192.168.1.5:3306 \
  7. -e spring.datasource.database=canal_manager \
  8. -e spring.datasource.username=anin \
  9. -e spring.datasource.password=123456 \
  10. --name=canal-admin \
  11. -p 8089:8089 \
  12. -m 1024m \
  13. canal/canal-admin

:::info 初始化SQL脚本里会默认创建canal_manager的数据库,如果使用默认初始化需要使用root等有超级权限的账号。
也可以自己初始化数据库数据库完成之后,再配置数据库连接信息

注意:canal-admin的mysql账号需要有读写权限 :::

查看admin日志

  1. vi logs/admin.log
  2. 2019-08-31 15:43:38.162 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8089 (http)
  3. 2019-08-31 15:43:38.180 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8089"]
  4. 2019-08-31 15:43:38.191 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
  5. 2019-08-31 15:43:38.194 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet Engine: Apache Tomcat/8.5.29
  6. ....
  7. 2019-08-31 15:43:39.789 [main] INFO o.s.w.s.m.m.annotation.ExceptionHandlerExceptionResolver - Detected @ExceptionHandler methods in customExceptionHandler
  8. 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
image.png

启动Canal-server(admin管理模式)

admin管理模式启动并运行canal-server

单机模式

以单机模式为例

  1. sh run.sh -e canal.admin.manager=192.168.1.5:8089 \
  2. -e canal.admin.port=11110 \
  3. -e canal.admin.user=admin \
  4. -e canal.admin.passwd=4ACFE3202A5FF5CF467898FC58AAB1D615029441 \
  5. -e canal.instance.master.address=192.168.1.5:3306 \
  6. -e canal.instance.dbUsername=canal \
  7. -e canal.instance.dbPassword=canal
  • canal.admin.manager=192.168.1.5:8089 canal-admin的地址
  • canal.admin.passwd mysql5的加密,明文为上面设置的admin,如果修改需要对应 在线加密

    集群模式

    集群模式需手动创建一个集群,并且提供zookeeper地址,然后启动参数加上集群名称即可,配置与单机模式一样,只不过一个集群共用一个server配置
    1. sh run.sh -e canal.admin.manager=192.168.1.5:8089 \
    2. -e canal.admin.port=11110 \
    3. -e canal.admin.user=admin \
    4. -e canal.admin.passwd=4ACFE3202A5FF5CF467898FC58AAB1D615029441 \
    5. -e canal.instance.master.address=192.168.1.5:3306 \
    6. -e canal.instance.dbUsername=canal \
    7. -e canal.instance.dbPassword=canal
    8. -e canal.admin.register.cluster=test

    启动Canal-server(不使用admin管理)

    1. docker run --name canal \
    2. -e canal.instance.master.address=192.168.1.5:3306 \
    3. -e canal.instance.dbUsername=canal \
    4. -e canal.instance.dbPassword=canal \
    5. -p 11111:11111 \
    6. -d canal/canal-server
    启动成功后,刷新admin页面的server列表,会出现刚刚启动的canal-server
    image.png
    canal-admin的操作见文档:https://github.com/alibaba/canal/wiki/Canal-Admin-Guide