smt生成sql报错

这里我需要同步mysql库中的diagosis.print_log,在配置完成后,执行smt,首先是报错找不到table-rule,这里原配置文件默认是table-rule1。这是进行了修改吗?其次在修改完table-rule后,执行smt,显示panic: No matching table columns found. 这一块是我配置的问题吗?配置如下:
[table-rule]
database = ^diagosis.*$
table = ^print_log.*$
schema = ^.*$
flink.cdc.server-id = 1555

测试smt工具的话,可以参考


这篇文章哦。

1赞

你好,您推荐的文章并不能解决我说明的两个问题,现在是smt启动就会出现异常,打印panic: No matching table columns found. 配置我也贴在了上面,希望有人能够为我解答。

你好,把schema这个配置注释吧,mysql不需要这个配置,这个配置是用于oracle、postsql和sqlserver的。

config_prod.conf (3.0 KB)
mysql版本 8.0.22

你好,确认下数据库名和表名核mysql中的是可以正则匹配的?另外确认下数据库和表是对应的吗?报错是正则没有匹配到对应的表。

我用在线网站检测过,是可以匹配的。库名与表名就是我配置中的,这里应该是没问题的。我还试过别的库和表,依旧是不行的。然后就是我说的第一个问题,[table-rule.1],使用这个配置会报找不到table-rule,我是通过更改[table-rule.1]处理的,但这与文档里的描述又不一致。

你好,这边复现验证了一下
1.虽然mysql表同步不会用到schema,但是当前schema部分需要补充上,不补充上的话会报错:找不到table-rule
2.另外报错:panic: No matching table columns found,应该是您的数据库名字配置有问题,mysql中的数据库名字应该是不包括‘-’的,您再确认下数据库名字和表名字是否正确。

我这里在添加上schema配置并将table-rule改为table-rule.1后,已经可以正常生成sql了。非常感谢您的帮助!

1赞