【问题标题】:The network adapter could not establish the connection网络适​​配器无法建立连接
【发布时间】:2015-06-10 07:51:03
【问题描述】:

下面是我连接数据库时的连接字符串:

public static void createConnection() throws Exception {
    System.out.println("-------- Oracle JDBC Connection Testing ------");

            try {

                Class.forName("oracle.jdbc.driver.OracleDriver");

            } catch (ClassNotFoundException e) {

                System.out.println("Where is your Oracle JDBC Driver?");
                e.printStackTrace();
                return;

            }

            System.out.println("Oracle JDBC Driver Registered!");

            Connection connection = null;

            try {

                connection = DriverManager.getConnection(
                        "jdbc:oracle:thin:@localhost:1521:brdqa", "STATICDATA_APP",
                        "password");

            } catch (SQLException e) {

                System.out.println("Connection Failed! Check output console");
                e.printStackTrace();
                return;

            }

运行此代码时,出现以下异常:

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.markit.scripts.ConnectMRD.createConnection(ConnectMRD.java:32)
    at com.markit.scripts.ConnectMRD.main(ConnectMRD.java:54)

我google了很多,发现问题只存在于这个连接字符串。 在字符串中,“brdqa”是我的数据库名称,“STATICDATA_APP”是我的用户名。我可以手动访问数据库。 请提出建议。

【问题讨论】:

  • 你在 localhost 端口 1521 上有一个正在运行的 oracle 服务器吗?
  • 1521 在我的 TNS 条目中被提及。
  • 不回答问题。它在运行吗?有人在监听 1521 端口吗?
  • 我是 Windows 新手。请告诉我检查方法
  • 1-打开“cmd.exe”->运行“netstat -n -b”->检查“tnslsnr.exe”或“cmd.exe”的输出->“telnet localhost 1521” -> 如果它打开 telnet,那么 Oracle 监听器正在运行,否则它会说无法连接或其他东西。

标签: java oracle


【解决方案1】:

此错误表明驱动程序无法将套接字连接到端口 1521 上的主机“localhost”。

您可以仔细检查相同的连接字符串是否适用于 sqlplus:

sqlplus "STATICDATA_APP/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=brdqa)))"

侦听器通常不支持“localhost”作为主机名。您是否尝试过使用本地 IP 地址“127.0.0.1”?

"jdbc:oracle:thin:@127.0.0.1:1521:brdqa"

【讨论】:

    猜你喜欢
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多