guo83551218 2024-07-09 13:27 采纳率: 0%
浏览 12

jdbc连接远程的oracle数据库报错,Connection refused

jdbc连接远程的oracle数据库报错,Connection refused


13:14:39,441 ERROR com.sssoft.TenantUtil:183 - java.lang.Exception: 无法获取数据库连接。Connection refused 
13:14:40,153 ERROR com.alibaba.druid.pool.DruidDataSource:643 - init datasource error, url: jdbc:oracle:thin:@172.20.0.111:1521:PROD
java.sql.SQLException: Connection refused 
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:525)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148)
    at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:785)
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1377)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1431)
    at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:632)

用sqlDeverloper工具可以连接,但是写代码就不行,其他的电脑同样的开发工具和代码可以连接

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-07-09 13:27
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    遇到 "Connection refused" 错误通常意味着 JDBC 驱动尝试连接到数据库服务器时,连接请求被服务器拒绝。下面是一些可能的原因和解决步骤:

    1. 检查数据库服务状态

      • 确保远程Oracle数据库服务正在运行,并且监听在指定的端口(在这个案例中是1521端口)。
    2. 检查网络连接

      • 确认你的机器能够访问到数据库服务器的IP地址和端口。可以使用 ping 命令测试网络连通性,或者使用 telnet 命令测试端口是否开放。
    3. 检查防火墙设置

      • 检查你的机器和数据库服务器的防火墙设置,确保没有阻止 JDBC 连接请求。
    4. 检查数据库监听器配置

      • 确保Oracle数据库的监听器(Listener)配置正确,并且允许从你的机器IP地址进行连接。
    5. 检查JDBC URL

      • 确认JDBC URL 格式正确,包括主机地址、端口号和数据库服务名(在这个案例中是 PROD)。
    6. 检查数据库权限

      • 确保你的数据库用户有权限从你的机器IP地址连接到数据库。
    7. 检查JDBC驱动

      • 确保使用的JDBC驱动与数据库版本兼容,并且已经正确加载到你的项目中。
    8. 检查代码中的配置

      • 检查代码中是否有任何配置错误,比如用户名、密码或其他连接参数。
    9. 查看错误日志

      • 错误日志提供了异常的详细信息,可以帮助你诊断问题。在这个案例中,错误发生在尝试建立连接时。
    10. 比较环境差异

      • 由于其他机器能够成功连接,比较你的机器与其他机器在网络配置、系统设置、JDK版本、JDBC驱动等方面是否存在差异。
    11. 检查代码实现

      • 检查是否有代码逻辑错误,比如异常处理不当,导致连接失败。

    如果上述步骤都不能解决问题,你可能需要联系数据库管理员或者更深入地检查网络和数据库配置。

    关于参考链接,以下是一些可能有用的资源,你可以进一步探索:

    请注意,这些链接仅供参考,具体问题还需要根据你的环境和配置进行详细分析。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月9日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住