docker启动canal后无法监控mysql日志变化
问题背景
第一次docker run canal后,可以监控mysql的日志,启动java写的client端也有输出,然后我改了一下instance.properties,docker restart了一下canal容器,发现怎么也监控不到mysql的日志了,同时使用docker logs -f canal容器id 也看到没有任何的输出,首先我确定我配置的没有问题。但是反复重启发现依然是无法监控的情况。
问题排查及解决
经过排查,发现mysql的canal用户用navicat工具居然无法连接数据库了,具体然因不清楚,但就是突然不能用了,所以我重新把canal这个user给drop了,重新创建并赋予权限,就可以了。
# 删除原有的canal用户
DROP USER canal;
# 新建用户 用户名:canal 密码:canal
CREATE USER canal IDENTIFIED by 'canal';
# 授权
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
# 刷新MySQL的系统权限相关表
FLUSH PRIVILEGES;