开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC中文乱码问题,我本地idea连测试环境试了没有问题,但上生产就遇到乱码?

Flink CDC中文乱码问题,我本地idea连测试环境试了没有问题,但上生产就遇到乱码 "name":"���������","cert_type":"00"

展开
收起
真的很搞笑 2023-07-02 14:07:02 502 0
3 条回答
写回答
取消 提交回答
  • Flink CDC 中文乱码问题通常有以下几种可能:

    1. Flink CDC 没有正确设置字符编码:在 Flink CDC 的配置中,确保将字符集设置为与 MySQL 数据库一致,例如 connector.property.CharacterSetResults 和 table.exec.mysql.charset 都设置为 utf8mb4

    2. Flink 和目标 Sink 使用的字符编码不一致:如果 Flink CDC 将数据同步到其他系统(如 Kafka),请确保 Flink 和目标系统之间使用一致的字符编码。

    3. JDBC 配置问题:Flink CDC 在初始化 schema 时使用 JDBC 连接数据库,因此需要正确配置 JDBC 驱动。确保你的项目依赖中包含正确版本的 MySQL JDBC 驱动,并且在相关配置中指定了对应的字符编码。

    4. IDEA 和生产环境字符编码不一致:最好在开发和部署 Flink CDC 时使用相同的字符编码设置。确保 Flink CDC 内部使用与 MySQL 一致的编码(如 utf8mb4),目标 Sink 系统也使用相同的编码,同时检查 JDBC 驱动的配置是否与字符编码一致。

    为了更准确地定位问题,需要提供以下信息:

    - Flink 和 Flink CDC 的版本。 - MySQL 的字符集配置。 - Flink CDC 作业的配置。 - 目标 Sink 使用的字符编码。 - IDEA 和生产环境的字符编码设置。

    请检查以上可能的原因,并提供更多的信息,以便进一步帮助您解决中文乱码问题。

    2023-07-30 12:56:37
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    nk CDC 产生中文乱码通常有以下几种可能:
    Flink CDC 没有正确设置字符编码
    通常情况下,MySQL 和 Flink CDC 使用的字符编码需要一致。你需要在 Flink CDC 配置中指定:
    properties
    Copy
    connector.property.CharacterSetResults = utf8mb4
    table.exec.mysql.charset = utf8mb4
    Flink 和 Target Sink 使用的字符编码不一致
    如果是 Flink CDC 将数据同步到其他系统(如Kafka),那也需要确保 Flink 和 Target 之间使用一致的字符编码。
    JDBC 配置问题
    Flink CDC 初始化 schema 时,使用 JDBC 连接数据库,所以 JDBC 驱动的配置也需要:
    xml
    Copy


    mysql
    mysql-connector-java
    8.0.15

    IDEA 和生产环境字符编码不一致
    最好使用同样的编码设置来开发和部署 Flink CDC。
    所以要确保:
    Flink CDC 内部使用与 MySQL 一致的编码(如utf8mb4)
    Target Sink 系统也使用一致的编码
    JDBC 驱动也正确配置并使用该编码
    IDEA 和生产环境都采用该编码
    需要提供更多信息才能确切定位这个问题:
    Flink 和 Flink CDC 版本
    MySQL 字符集配置
    Flink CDC 作业配置
    Target Sink 使用的编码
    IDEA 和生产环境的编码设置

    2023-07-30 10:50:20
    赞同 展开评论 打赏
  • 回答1:你的这些包在程序有用到吗image.png 你的build不对image.png image.png 回答2:有,你集群是yarn的吗,flink 配置改下:env.java.opts,注意下版本,不同版本flink 的 env.java.opts 不一样。里面有设置编码的,看你用的ds api,sql api乱码吗?社区代码里做过全字符集测试的https://github.com/ververica/flink-cdc-connectors/blob/06c48e0c33c89347af87388ceaf73e4800bfa036/flink-connector-mysql-cdc/src/test/java/com/ververica/cdc/connectors/mysql/table/MysqlConnectorCharsetITCase.java#L45

    2023-07-02 16:11:57
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载