canal 版本1.1.3 想要同步rds到es里 logger已经ok了 仔细读完了https://github.com/alibaba/canal/wiki/Sync-ES 发现两个问题:
1 如果es配置了用户名和密码 该如何配置呢?username&password? 示例里面没有;
2 加载的时候报找不到 defaultDS,但是配置文件里明明有 而且logger启动的时候可以成功获取
2019-04-10 18:24:18.791 [main] ERROR c.a.o.canal.adapter.launcher.loader.CanalAdapterLoader - Load canal adapter: es failed java.lang.RuntimeException: java.lang.RuntimeException: Not found the schema of jdbc-url: defaultDS
原提问者GitHub用户purevirtual
我用这个调通了 这个工具支持es的加密认证 先基于mysqldump获取存量 然后实时同步delta的增量 就是transform和字段mapping弱了一点 我现在这方面需求还不强烈 就先用这个工具了
https://github.com/siddontang/go-mysql-elasticsearch
原回答者GitHub用户purevirtual
针对你所提出的两个问题,可以参考以下建议:
如果ES配置了用户名和密码,可以在同步 ES 的参数中加入账号密码信息,示例如下: canal.instance.filter.regex=.\.. canal.instance.filter.black.regex= canal.instance.es.url=http://localhost:9200 canal.instance.es.user=userName canal.instance.es.password=userPassword 可以在canal.instance.es.user和canal.instance.es.password中分别填入用户名和密码。需要注意的是,为了安全起见,一般不会在配置文件里直接明文填写密码,而是使用加密后的字符串,这样能增加密码被泄露的概率。
报错信息Not found the schema of jdbc-url: defaultDS可以考虑以下几种情况:
检查一下在canal.instance.dbAddresses中的mysql地址是否正确 检查一下配置文件中的canal.instance.dbUsername和canal.instance.dbPassword是否设置正确 确认一下已经在canal的关联表(即meta表)中定义了这个defaultDS数据源信息 如果以上尝试都不能解决,可以重新检查一下canal和rds的连接是否正常,并确保正确添加了配置元信息表( canal_admin.canal_instance_config).
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。