You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 Stream Processor MySQL CDC快照失败:CharsetMapping类未找到

解决WSO2 Stream Processor 4.4.0无法获取MariaDB快照及CharsetMapping类未找到错误

问题根源分析

你遇到的com/mysql/jdbc/CharsetMapping类未找到错误,核心原因是MySQL Connector/J 8.x与你使用的siddhi-io-cdc-1.0.10版本不兼容:

  • CharsetMapping是MySQL 5.x驱动中的类,在8.x版本里被彻底移除并重构了字符集处理逻辑;
  • siddhi-io-cdc-1.0.10是基于旧版MySQL驱动的API开发的,所以会尝试调用这个已不存在的类。
    另外,你使用的是MariaDB而非MySQL,直接用MySQL驱动本身就不是最优选择,MariaDB有自己的官方驱动,兼容性会更好。

分步解决方案

1. 替换为MariaDB官方驱动

将mysql-connector-java-8.0.19.jar从WSO2 SP的lib目录中移除,下载MariaDB Connector/J 2.7.11(这个版本完美兼容MariaDB 10.4.x和Java 8+,适配WSO2 SP 4.4.0的运行环境),放入lib目录。

2. 更新CDC数据源配置

修改你的Siddhi应用或数据源配置文件,调整以下参数:

  • 将驱动类名从com.mysql.jdbc.Driver改为org.mariadb.jdbc.Driver;
  • 将JDBC URL从jdbc:mysql://...改为jdbc:mariadb://localhost:3306/你的数据库名(确保端口和数据库名正确匹配XAMPP的MariaDB配置)。

3. 清理缓存并重启SP

  • 删除WSO2 SP安装目录下的tmp和work文件夹,避免残留旧驱动的类缓存;
  • 重新启动WSO2 Stream Processor,观察日志是否还出现类未找到的错误。

4. 验证CDC组件版本兼容性

WSO2 SP 4.4.0默认适配的siddhi-io-cdc版本是1.0.10,这个版本本身是兼容MariaDB的,但前提是使用正确的驱动。如果替换驱动后仍有问题,可以检查lib目录中是否有多个siddhi-io-cdc-*.jar,如果有,保留官方适配的版本即可,避免重复放入导致版本冲突。

额外注意事项

  • XAMPP的MariaDB默认配置可能需要开启二进制日志(binlog),因为CDC需要依赖binlog来捕获数据变更和快照,确保my.cnf或my.ini中配置了log_bin=mysql-bin以及binlog_format=ROW;
  • 确保数据库用户拥有足够的权限(如REPLICATION SLAVE、REPLICATION CLIENT以及目标数据库的读写权限)。

内容的提问来源于stack exchange,提问作者user3682508

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:52:36