更换元数据库(kubernetes)
本文档介绍 CloudCanal K8S 部署如何更换元数据库。
CloudCanal 默认提供了元数据库镜像(MySQL), 但是用户上生产,希望能够用自有的、更加稳定、且得到良好维护的元数据库,本文做了具体的操作描述。
导出已有元数据库
在 K8S 集群上执行以下命令,导出 cloudcanal_console 库内容
# 进入 cloudcanal-mysql pod
kubectl exec -it mysql-xxx-xxx -n cloudcanal /bin/bash
# 导出 cloudcanal_console 库内容
mysqldump -uroot -proot --databases cloudcanal_console > ./cloudcanal_console.sql
# 退出 Pod,将 dump 出来的文件 copy 到宿主机
kubectl cp cloudcanal/mysql-xxx-xxx:/tmp/cloudcanal_console.sql .
准备好新的元数据库 MySQL,将数据导入新元数据库
mysql> source ${YOUR_PATH}/cloudcanal_console.sql;
PS:请确保您准备的数据库与 cloudcanal-mysql Pod 的数据库版本一致,否则需要人工修改数据库表字符集。
修改 Console 的 Configmap 里的配置,修改后会自动同步到 Console Pod 中
- 编辑 Configmap:
kubectl edit cm console-config -n cloudcanal
- 修改配置项
- spring.datasource.url
- spring.datasource.username
- spring.datasource.password
重启 console 并确认能够正常登陆控制台
常见问题
账号权限
- 请确保修改后的账号对 CloudCanal 元数据库有以下权限:
SELECT
、UPDATE
、DELETE
、INSERT
、CREATE
、DROP
、INDEX
、ALTER
、EXECUTE
、CREATE ROUTINE
、ALTER ROUTINE
。GRANT SELECT,UPDATE,DELETE,INSERT,CREATE,DROP,INDEX,ALTER,EXECUTE,CREATE ROUTINE,ALTER ROUTINE ON cloudcanal_console.* TO common_user@'%';