작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
6.2K
·
수정됨
3
https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar
제 경우 mariadb 커넥터 대신 mysql 커넥터 사용해서 해결했습니다.
(... confluentXXX/share/java/kafka 폴더에 위치)
정말.. 하루종일 아래 예외로 애먹었네여..
Error while starting connector ...
No suitable driver found for jdbc:mysql://localhost:3307/mydb
mariadb 버전별 커넥터를 5개정도 해봐도 안되어서
자포자기한 채로 mysql 커넥터를 사용하니 되었습니다 ㅠㅠ
자세한 버전 정보입니다. (윈도우)
kafka : 2.13-3.4.0
kafka-connect-jdbc : 10.7.2
confluent : 7.4.0
mariaDB : 10.11
java : 17
설정 정보입니다.
confluent/etc/kafka/connect-distributed.properties
89번 행 근처
plugin.path=\C:\\Work\\confluentinc-kafka-connect-jdbc-10.7.2\\lib
confluent/bin/windows/kafka-run-class.bat
97번 행 근처
rem classpath addition for LSB style path
if exist "%BASE_DIR%\share\java\kafka\*" (
call :concat "%BASE_DIR%\share\java\kafka\*"
)
(...)
122번 행 근처
rem Log4j settings
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (
if exist %~dp0../../etc/kafka/tools-log4j.properties (
set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../etc/kafka/tools-log4j.properties
) else (
set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/etc/kafka/tools-log4j.properties
)
) ELSE (
rem create logs directory
IF not exist "%LOG_DIR%" (
mkdir "%LOG_DIR%"
)
set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../etc/kafka/tools-log4j.properties
)
confluent/bin/windows/connect-distributed.bat
28번 행 근처
rem Log4j settings
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (
set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/etc/kafka/connect-log4j.properties -Dlog4j.config.dir=%BASE_DIR%/etc/kafka
)
POST Request
{
"name":"my-source-connect",
"config":{
"connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector",
"connection.url":"jdbc:mysql://localhost:3307/mydb",
"connection.user":"root",
"connection.password":"1234",
"mode":"incrementing",
"incrementing.column.name":"id",
"table.whitelist":"users",
"topic.prefix":"my_topic_",
"tasks.max":"1"
}
}
답변 2
7
저도 같은 문제로 고생해서 제가 해결한 방법 공유드립니다.
결론부터 말씀드리면 url의 mysql 부분을 mariadb로 변경해서 해결했습니다.
"connection.url":"jdbc:mariadb://localhost:3306/mydb"
kafka-connect가 정확히 어떻게 드라이버를 찾는지는 모르겠으나 프로토콜이 mysql이면 mariadb jdbc를 잘 못찾는 듯합니다.
저도 mysql 드라이버로 시도했을땐 드라이버는 찾던데, 특정버전 이후로 tx-isolation
-> transaction-isolation
변수로 변경된 것 때문에 다른 오류가 뜨더라구요. 그래서 어쩔수 없이 mariadb driver 사용하면서 url 부분 변경하니 작동됐습니다.
mysql driver에서는 transaction-isolation을 찾는데, mariadb에서 tx-isolation 변수만 있어 생긴 에러라고 합니다.
찾아보니 mariadb도 최신버전부터 변경된 변수로 적용한다는데, 저는 brew를 통해서 설치한지라 최신버전을 설치할 수 없었습니다.
마지막으로 제 실행환경 공유합니다.(mac)
kafka : stable 3.4.0
kafka-connect-jdbc : 10.7.24
mariaDB : 11.0.2-MariaDB Homebrew
java : openjdk-17
-4
안녕하세요, 인프런 AI 인턴이에요.
해당 오류는 JDBC 드라이버가 추가되지 않아서 발생하는 오류입니다. jdbc 드라이버를 추가해보세요.
마리아DB 버전별 드라이버 링크는 아래와 같아요.
https://mariadb.com/downloads/#connectors
또한, mysql 커넥터를 사용하여 오류를 해결하셨다고 하니, 드라이버 파일이 필요하시다면 mysql 커넥터를 다운받아 사용하시면 됩니다.
참고로, confluentXXX/share/java/kafka 폴더에 위치시키셨으니 해당 경로를 활용하시기 바랍니다.
더 자세한 오류 메시지와 함께 문제가 해결되었는지 알려주시면 더욱 도움될 것 같습니다.
좋은 하루 되세요!