【问题标题】:How to connect to database which is hosted in remote machine using java program [duplicate]如何使用java程序连接到远程机器上托管的数据库[重复]
【发布时间】:2019-11-02 16:42:47
【问题描述】:

我正在尝试连接到托管在远程计算机中的数据库。我在本地有一个 java 项目,它必须连接到远程机器中的数据库以进行更新。我可以用来连接的java代码是什么。传统的连接代码不起作用,并显示以下错误。

import java.beans.Statement;
import java.sql.*;

public class connectTest {

    public static void main(String[] args) {

           try{  
                  //step1 load the driver class  
                  Class.forName("oracle.jdbc.driver.OracleDriver"); 
                 // Class.forName("oracle.jdbc.OracleDriver");

                  Connection con=DriverManager.getConnection(  
                               "jdbc:oracle:thin:@172.25.250.183:1521/aaadv4","boomerang","Telus2014"); 

                  Wrapper stmt=con.createStatement(); 

                  ResultSet rs=((java.sql.Statement) stmt).executeQuery("select * from ttv_dhcp_log.ACCT_MSG where SUB_IF='BACUPQXQOT01 PON 1/1/12/02:21.1.1'");  
                  while(rs.next())  
                  System.out.println(rs.getString(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  

                  //step5 close the connection object  
                  con.close();  

                  }catch(Exception e){ System.out.println(e);}  

                  }
}

我希望它能够连接到数据库,但它失败并显示以下消息。

java.sql.SQLException:Io 异常:网络适配器无法 建立连接

【问题讨论】:

  • 您确定您的数据库服务器在端口 1521 上运行吗?这不是默认端口。您的错误可能意味着两件事:无法访问 172.25.250.183 的服务器(错误的 IP、网络问题等)或端口 1521 未对连接开放。
  • 172.25 是私有空间IP...不能在内部网络之外访问。
  • 您似乎正在连接到仅暴露于本地网络的计算机。你将不得不移植到你的机器

标签: java oracle jdbc


【解决方案1】:

您可能需要验证几件事。

  1. 检查端口是否可以从机器访问。使用 telnet 之类的命令来检查。 例如:telnet IPaddress 端口号

  2. 检查计算机中的防火墙,查看是否允许连接到端口范围。

  3. 检查 Oracle db 作为主机的计算机中的防火墙规则。
  4. 确保您的凭据正确。
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = null;
connection = DriverManager.getConnection("jdbc:oracle:thin:@172.25.250.183:1521:aaadv4","username","password");
connection.close();

使用上面的。您的数据库连接 URL 包含 "/" 而不是 ":" 。此外,请确保您的 IP 地址可以从您的机器访问。如果你在同一个网络。它应该是。如果没有,请按照上面给出的调试步骤进行操作。

【讨论】:

  • 连接到我的客户端 vpn 并且当我想连接到该数据库时,通常我使用远程机器的地址,然后使用登录凭据进入机器。然后访问数据库是一个正常的过程。现在,我希望通过 Java 代码完成相同的操作。那么有没有办法通过使用相同端口的代码来执行确切的操作?还是可能阻止我的端口/防火墙问题?
猜你喜欢
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2011-01-20
  • 2017-12-14
  • 2013-08-10
  • 2022-06-15
相关资源
最近更新 更多