我在局域网的一台机器上运行Oracle 我发出时可以用sqlplus连接数据库:
sqlplus myuser/mypass@localhost:1521/orcl
这很好用。
在局域网的另一台机器上,我安装了oracle即时客户端(基本+ sdk + sqlplus)。
sqlplus myuser/mypass@oracle_server:1521/orcl
SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 25 09:10:41 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12543: TNS:destination host unreachable
Enter user-name:
Oracle服务器已启动并正在运行,并且可以在网络上访问,但我无法连接到数据库。
答案 0 :(得分:1)
localhost
是一个特定的本地地址127.0.0.1
,只能从同一台机器上访问;另一台计算机无法直接连接到仅针对localhost
注册的服务。 oracle_server
将解析(或者如果您不使用主机名)机器上以太网接口的IP地址;在局域网上,这可能从10.
或192.168.
开始,但也可能是其他内容。
检查您的Oracle侦听器配置是否正在侦听外部地址以及localhost
。
话虽如此,如果这是唯一的问题,您可能会看到ORA-12541: TNS:no listener
而不是ORA-12543
。这听起来好像在Oracle服务器计算机上可能运行防火墙,如果是这样,您需要配置它以允许端口1521上的流量。
另一种可能性是您在连接字符串中使用主机名,而您无法将其解析为IP地址。检查你可以ping oracle_server
;如果它显示cannot resolve oracle_server
之类的内容,请检查名称,查看是否需要提供完全限定名称(oracle_server.example.com
),或者将其添加到本地hosts
文件中。或者,使用连接字符串中的原始IP地址而不是主机名。