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

求助:从Oracle Application Express导入数据到ElasticSearch集群的连接问题

解决Logstash连接Oracle APEX测试数据库的问题

我来帮你排查这个连接失败的问题,从你的配置和Oracle APEX的环境来看,有几个关键的地方需要修正:

1. 错误的JDBC连接端口和格式

你当前用的8080是Oracle APEX网页控制台的端口,不是Oracle数据库的监听端口。Oracle XE默认的数据库监听端口是1521,而且连接字符串的格式也需要调整——XE的服务名通常是大写的XE,正确的JDBC连接字符串应该是:

jdbc:oracle:thin:@//127.0.0.1:1521/XE

注意开头的双斜杠,这是Oracle Thin驱动针对服务名连接的标准格式。

2. 混淆了APEX工作区和数据库用户

你填的jdbc_user => "TEST"是APEX的工作区名称,但APEX工作区和数据库用户是两个不同的概念。你需要找到person表所属的实际数据库用户名:

  • 登录APEX的TEST工作区
  • 进入「SQL Workshop」→「Object Browser」
  • 找到你创建的person表,查看它的所属用户(比如可能是TEST_USER或者你手动创建的用户名)
  • 把这个实际的数据库用户名填到jdbc_user字段中

3. 额外的验证步骤

在调整Logstash配置之前,建议先通过其他工具验证数据库连接是否正常:

  • 用SQL Developer或者Oracle SQL*Plus,用修正后的连接字符串、正确的用户名密码连接数据库,确认能查询到person表的数据
  • 检查Windows服务中的OracleServiceXE和OracleXETNSListener是否处于运行状态,如果没启动,手动启动它们

修正后的Logstash配置示例

input {
  jdbc {
    jdbc_driver_library => "C:\Users\ADMIN\Downloads\ojdbc7.jar"
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@//127.0.0.1:1521/XE"
    # 替换为你找到的实际数据库用户名
    jdbc_user => "ACTUAL_DB_USER"
    jdbc_password => "pass"
    statement => "SELECT * from person"
  }
}

output {
  stdout { codec => rubydebug }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:41:12