I want to run a JDBC source connector using Kafka Connect REST API. Although stand-alone mode works perfect using the following properties file:
name=source-mysql-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:mysql://localhost:3306/kafka
connection.user=myuser
connection.password=mypass
table.whitelist=MY_TABLE
# Pull all rows based on timestamp
mode=timestamp
timestamp.column.name=ROWVERSION
validate.non.null=false
# The Kafka topic will be made up of this prefix, plus the table name.
topic.prefix=MYSQL-
table.types=TABLE,VIEW
poll.interval.ms=1000
I am not able to run the connector using the REST API. Here's the call:
curl -X POST -H "Content-Type: application/json" --data '{"name": "source-mysql-test", "config": {"connector.class":"io.confluent.connect.jdbc.JdbcSourceConnector", "tasks.max":"1", "connection.url":"jdbc:mysql://localhost:3306/kafka","connection.user":"myuser","connection.password":"mypass", "table.whitelist":"MY_TABLE", "mode":"timestamp", "timestamp.column.name":"ROWVERSION", "validate.non.null":"false", "topic.prefix":"MYSQL-", "table.types":"TABLE,VIEW", "poll.interval.ms":"1000" }}' http://localhost:8083/connectors
And here's the response:
{
"error_code": 400,
"message": "Connector configuration is invalid and contains the following 2 error(s):\nInvalid value com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. for configuration Couldn't open connection to jdbc:mysql://localhost:3306/kafka\nInvalid value com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. for configuration Couldn't open connection to jdbc:mysql://localhost:3306/kafka\nYou can also find the above list of errors at the endpoint `/{connectorType}/config/validate`"
}
In the past I have used the REST API in order to run JDBC sink connectors without any problems!
Here are the available connector plugins:
> ls /usr/share/java/kafka-connect-jdbc/
common-utils-4.1.0.jar mysql-connector-java-5.1.46.jar uber-restavro-1.0-SNAPSHOT.jar
jline-0.9.94.jar netty-3.10.5.Final.jar
kafka-connect-jdbc-4.1.0.jar postgresql-9.4-1206-jdbc41.jar zkclient-0.10.jar
log4j-1.2.17.jar slf4j-api-1.7.25.jar zookeeper-3.4.10.jar
mssql-jdbc-6.2.2.jre8.jar sqlite-jdbc-3.8.11.2.jar
The problem seems to be the compatibility of the JDBC Connector with MySQL 8. I've upgraded MySQL Connector/J from 5.1.46 to 8.0.11 and the issue has been fixed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With