#问题描述:Windows10安装Oracle11-R2启动后,可使用sqlplus工具正常连接,当使用远程连接或代码连接时报错,报错信息如下:

IO 错误: The Network Adapter could not establish the connection 

1、Oracle数据库启动信息查看:

2、Oracle监听器状态查看:

3、测试代码:

package oracleConn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class oracleConnectionDemo {
    public static void main(String[] args) {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        }catch (Exception e){
            System.out.println("Oracle JDBC 驱动程序加载失败!");
            e.printStackTrace();
            return;
        }
        System.out.println("Oracle JDBC 驱动程序加载成功!");

        Connection conn = null;
        try {
            String url = "jdbc:oracle:thin:@192.168.1.8:1521:orcl";
            String username = "scott";
            String passwd = "tiger";
            conn = DriverManager.getConnection(url, username, passwd);
            if (conn != null){
                System.out.println("获取Oracle 连接成功!");
            }
        }catch (Exception e){
            System.out.println("获取Oracle 连接失败!");
            e.printStackTrace();
        }finally {
            try {
                if (conn != null && !conn.isClosed()) {
                    conn.close();
                }
            }catch (Exception e){
                System.out.println("Oracle 连接关闭异常!");
                e.printStackTrace();
            }
        }

    }
}

4、报错信息:

 

 #问题解决:修改Oracle安装目录下的配置文件,放开远程连接的限制。配置文件为:tnsnames.ora、listener.ora。

本人Oracle数据库安装位置为:D:\software\oracle\,待修改的这两个配置文件的目录在: D:\software\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN。

同时修改这两个配置文件中的localhost为:0.0.0.0.然后重启Oracle数据库、重启监听器即可。

 1、tnsnames.ora修改为:

# tnsnames.ora Network Configuration File: D:\software\oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

2、listener.ora修改为:

 

# listener.ora Network Configuration File: D:\software\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\software\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\software\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\app\Administrator
 

 3、重启Oracle数据库:

4、重启监听器:

 #操作后结果验证

问题解决!!!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐