跳到主要内容

更换元数据库(Docker)

本文档介绍 CloudCanal Docker 部署如何更换元数据库。

CloudCanal 默认提供了元数据库镜像(MySQL),但是用户上生产,希望能够用自有的、更加稳定、且得到良好维护的元数据库,本文做了具体的操作描述。

导出已有元数据库

  • docker 宿主机上执行以下命令,导出 cloudcanal_console 库内容

    # 进入cloudcanal-mysql容器
    docker exec -it cloudcanal-mysql /bin/bash
    # 导出 cloudcanal_console 库内容
    mysqldump -uroot -proot --databases cloudcanal_console > ./cloudcanal_console.sql
    # 退出容器,将 dump 出来的文件 copy 到宿主机
    docker cp cloudcanal-mysql:/tmp/cloudcanal_console.sql .

准备好新的元数据库 MySQL ,将数据导入新元数据库

mysql> source ${YOUR_PATH}/cloudcanal_console.sql;

PS:请确保您准备的数据库与 cloudcanal-mysql容器的数据库版本一致,否则需要人工修改数据库表字符集。

修改 console 容器中 springboot 配置文件中配置

  • 文件路径:/{LOGIN_USER}/cloudcanal_home/console_data/console/conf/business-output.properties
  • 修改配置项
    • spring.datasource.url
    • spring.datasource.username
    • spring.datasource.password

重启 console 容器并确认能够正常登陆控制台

常见问题

账号权限

  • 请确保修改后的账号对 CloudCanal 元数据库有以下权限: SELECTUPDATEDELETEINSERTCREATEDROPINDEXALTEREXECUTECREATE ROUTINEALTER ROUTINE
    GRANT SELECT,UPDATE,DELETE,INSERT,CREATE,DROP,INDEX,ALTER,EXECUTE,CREATE ROUTINE,ALTER ROUTINE ON cloudcanal_console.* TO common_user@'%';