使用Kafka Connect同步Oracle数据时遇ORA-01005空密码登录拒绝错误
解决Kafka Connect Oracle源连接器ORA-01005密码为空错误
针对你遇到的java.sql.SQLException: ORA-01005: null password given; logon denied错误,即便配置文件中已明确填写密码,可从以下几个方向排查:
1. 检查配置文件格式与加载有效性
- 确认
connection.password=khldev行无多余前导/末尾空格,未用引号包裹密码(除非密码含@、#这类特殊字符,你的密码无特殊字符无需额外处理)。 - 通过Kafka Connect的REST API查看连接器实际加载的配置:
若返回结果中curl http://<connect-host>:8083/connectors/oracle-source-connector/configconnection.password为null,说明配置文件未被正确读取。
2. 排查配置优先级冲突
Kafka Connect会优先使用环境变量覆盖配置文件内容,若系统中设置了CONNECT_CONNECTION_PASSWORD环境变量且值为空,会覆盖你配置文件中的密码。可通过以下命令检查环境变量:
echo $CONNECT_CONNECTION_PASSWORD
若存在空值,需清除该环境变量后重启Connect。
3. 验证配置文件权限与加载方式
- 确保运行Kafka Connect的进程用户拥有配置文件的读取权限(比如将文件权限设置为
644)。 - 尝试跳过配置文件,直接通过REST API提交JSON格式的配置(示例如下),若能正常启动连接器,说明原配置文件存在格式或路径加载问题:
curl -X POST -H "Content-Type: application/json" --data '{ "name": "oracle-source-connector", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "tasks.max": "1", "connection.url": "jdbc:oracle:thin:@//x.x.x.x:xxxx/khldbdev", "connection.user": "khldev", "connection.password": "khldev", "table.whitelist": "TABLE_TEST", "mode": "incrementing", "incrementing.column.name": "ID", "topic.prefix": "oracle_TABLE_TEST" } }' http://<connect-host>:8083/connectors
4. 确认JDBC驱动兼容性
确保你下载的Oracle JDBC驱动版本与数据库版本匹配:
- Oracle 11g对应
ojdbc6.jar - Oracle 12c及以上对应
ojdbc8.jar或更高版本
驱动版本不兼容可能引发异常,导致密码校验逻辑异常。
内容的提问来源于stack exchange,提问作者M99
相关产品推荐
相关产品推荐

