如何在java中连接oracle服务器?

如何在java中连接oracle服务器?

我正在尝试连接到我朋友的 Oracle 服务器。但在连接时我收到错误,请帮忙......

JDBC 代码

Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();
conn=DriverManager.getConnection(jdbc:oracle:thin:@<IPaddress>:<SID>,userName,password);
conn.close();

错误信息

java.sql.SQLException: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.wipro.sample.min.main(min.java:28)

    Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
   at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
   at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
   at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
   at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
   at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
   at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
   ... 7 more

    Caused by: java.net.ConnectException: Connection refused: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(Unknown Source)
   at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
   at java.net.PlainSocketImpl.connect(Unknown Source)
   at java.net.SocksSocketImpl.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
   at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
   at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
   ... 12 more

答案1

看起来 Oracle 服务器没有在监听......

连接到存在 oracle 的机器..

跑步苏-甲骨文

lsnrctl 状态

如果监听器未处于活动状态,则执行lsnrctl 启动

答案2

似乎您无法连接到 Oracle 服务器。首先尝试使用 Oracle 的端口远程登录 Oracle 服务器。

前任: telnet <Oracle Serrver IP> 1521

答案3

当您执行以下操作时可能会发生此错误:

  1. 尝试连接到不同的主机:端口。仔细检查您的设置。
  2. Oracle 服务器已关闭。您需要启动它。
  3. 您的防火墙阻止了您与 Oracle 的连接。您需要允许您的应用程序访问。

答案4

角撑板执行以下操作:

  1. ping ip 地址。如果超时,则表示网络连接有问题。
  2. 如果 ping 结果表明连接正常,但仍然出现相同的异常,则执行以下操作:使用命令 tracert Ip Address 来 gat 域名。
  3. 在连接字符串中使用域名而不是 IP 地址:

    conn=DriverManager.getConnection(jdbc:oracle:thin:@<IPaddress>:<SID>,userName,password);
    conn=DriverManager.getConnection(jdbc:oracle:thin:@<domain Name>:<SID>,userName,password);
    
  4. 使用DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); 而不是 Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();

相关内容