【问题标题】:No suitable driver found for jdbc:mysql in Kafka Connect在 Kafka Connect 中找不到适合 jdbc:mysql 的驱动程序
【发布时间】:2019-01-16 09:55:33
【问题描述】:

connect-standalone.properties

connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
bootstrap.servers=10.33.62.20:9092,10.33.62.110:9092,10.33.62.200:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true

offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
plugin.path=/grid/1/mukul/confluent-5.0.0/share/java

source-sqlite.properties

name=test-source-sqlite-jdbc-autoincrement
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=5

connection.url=jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxxx

table.whitelist=banner_hourly_statistics_v2

group.id=test-mysql-kafka
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter

config.storage.topic=demo-1-distributed-config
offset.storage.topic=demo-1-distributed-offset
status.storage.topic=demo-1-distributed-status

bootstrap.servers=10.33.62.20:9092,10.33.62.110:9092,10.33.62.200:9092
mode=bulk
#incrementing.column.name=id
topic.prefix=test-sqlite-jdbc-

CMD:connect-standalone /grid/1/mukul/confluent-5.0.0/etc/kafka/connect-standalone.properties /grid/1/mukul/confluent-5.0.0/etc/kafka-connect-jdbc/source-quickstart-sqlite.properties

在启动日志中,清楚地显示了正在加载 JDBC 连接器:

[2018-08-09 06:59:30,072] INFO Loading plugin from: /grid/1/mukul/confluent-5.0.0/share/java/kafka-connect-jdbc (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:218)
[2018-08-09 06:59:30,133] INFO Registered loader: PluginClassLoader{pluginLocation=file:/grid/1/mukul/confluent-5.0.0/share/java/kafka-connect-jdbc/} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:241)
[2018-08-09 06:59:30,133] INFO Added plugin 'io.confluent.connect.jdbc.JdbcSinkConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:170)
[2018-08-09 06:59:30,133] INFO Added plugin 'io.confluent.connect.jdbc.JdbcSourceConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:170)

但它失败并出现以下异常:

Invalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx for configuration Couldn't open connection to jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxx
Invalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx for configuration Couldn't open connection to jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx
You can also find the above list of errors at the endpoint `/{connectorType}/config/validate`
    at org.apache.kafka.connect.util.ConvertingFutureCallback.result(ConvertingFutureCallback.java:79)
    at org.apache.kafka.connect.util.ConvertingFutureCallback.get(ConvertingFutureCallback.java:66)
    at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:110)

也尝试更改插件目录,但没有成功。尝试将 confluent share/* 也移动到 /usr/share/java 但它也没有工作。

【问题讨论】:

    标签: jdbc apache-kafka apache-kafka-connect confluent-platform


    【解决方案1】:
    1. 从 URL 下载 JAR:https://dev.mysql.com/downloads/connector/j/5.1.html

    2. 放在插件目录中

    3. 运行连接

    这将需要开始从 MySql 中提取数据。

    【讨论】:

    • 你指的是哪个插件目录?如何识别正在使用的目录?
    • @ValerianPereira :您需要将 Jar 复制到 plugin.path=share/java 目录,如 etc/kafka/connect-distributed.properties 文件中所述
    • 或者您可以使用 etc/kafka/connect-standalone.properties 文件中的 plugin.path 配置来实现独立模式。
    • 感谢您的帮助@mukul 我已解决此问题。 JAR 很好地放置在 share/java 目录中,但是,我错过了重新启动服务以使更改生效。
    【解决方案2】:

    可能有点晚了。当我使用 kafka jdbc 连接器连接 DB2 时,我遇到了同样的问题“找不到驱动程序..”。

    第一种可能的解决方案:

    我通过将 DB2 驱动程序放置在 jdbc-connector 所在的确切位置解决了这个问题。 在 Kafka 中连接:

    find / -name kafka-connect-jdbc\*.jar

    从上述命令中找到位置后,将 DB2 jar 复制到该位置:

    cp {your DB2 jar location}/db2.jar {copy the location from 'find' command}

    例子

    cp /Download/db2.jar /Users/share/java/kafka-connect-java/

    重新启动 kafka-connect,它将获取 DB2 驱动程序

    第二种可能的解决方案:

    下载 jt400 jar (jdk-8) 并将其放在其他 jdbc 驱动程序(DB2、SQL 等)旁边

    编码愉快:)

    【讨论】:

      猜你喜欢
      • 2023-02-03
      • 2016-11-28
      • 2015-10-02
      • 2014-08-05
      • 1970-01-01
      • 2018-12-13
      • 2015-09-22
      • 2019-10-16
      • 2016-10-01
      相关资源
      最近更新 更多