我通过 URL 连接:
jdbc:oracle:thin:@host-ip:1521:service-name
但是连接没有建立,通过 SSH 我平静地转到 SQL*Plus。我假设问题出在 tnsnames.ora 文件中,它的配置是:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhom$
# Generated by Oracle configuration tools.
CS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = service-name)
)
)
LISTENER_CS =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
我认为HOST应该有一个地址,但是输入它,没有任何改变,仍然是一个错误:
java.sql.SQLRecoverableException:IO 错误:网络适配器无法建立连接
不,JDBC 瘦驱动程序不使用Oracle Net,包括 tnsnames.ora。
根本无法远程访问数据库服务器,例如通过VPN。
但既然是通过 SSH 访问,那么最简单的解决方案就是将Listener端口从数据库服务器转发到本地机器。简单的测试程序:
将无法连接到远程数据库服务器:
但是通过本地机器上的端口,相当: