在利用阿里云开源项目datax进行数据交流的时候,涌现报错ERROR StdoutPluginCollector - 脏数据:{"exception":"Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...',导致无法交流数据到目标库。
datax失落败交流结果
2、办理思路

首先查看交流日志,创造缺点日志,很多网上资料发起说把uft8字符集改为utf8mp4,于是按照操作把目标库字段格式修正,表和库都也同步修正利用utf8mp4,如下图:
修正mysql字符集
重新实行还是弗成,一样涌现这个问题报错ERROR StdoutPluginCollector - 脏数据:{"exception":"Incorrect string value: '\\xF0\\x9F\\x91\\x8D\\xF0\\x9F...'。后面查询干系资料是中间环节datax的问题,datax会把表情包转义的时候认为是脏数据。既然是datax的问题,那能否从datax来办理问题呢,于是想到在连接jdbc中是否可以指定干系特定的字符集索引,就和平时在开拓环境测试的时候。
3、问题办理
在jdbc连接增加以下配置,&com.mysql.jdbc.faultInjection.serverCharsetIndex=45
该配置chatGPT的阐明:
com.mysql.jdbc.faultInjection.serverCharsetIndex=45 是一个 MySQL 驱动程序的配置属性,用于仿照故障注入。它指定了在与 MySQL 做事器进行通信时要利用的字符集索引。在这种情形下,索引值为45。
在 MySQL 中,字符集索引对应于做事器支持的字符集。每个字符集都有一个唯一的索引值。在此配置中,索引值为45指定了某个字符集,但详细是哪个字符集须要查阅 MySQL 文档或干系资源以得到更多信息。
通过故障注入,可以仿照各种网络和做事器端缺点,以测试运用程序对这些缺点的处理办法。这样的设置在开拓和测试阶段特殊有用,以确保运用程序在面对非常情形时能够精确处理。
datax成功交流结果