我正在尝试在虚拟机中设置Oracle数据库服务器(目前仅用于testing目的)。
我正在使用的设置:
问题
我无法从主机访问数据库(通过端口1521,使用sqlplus或SQL开发人员)。 我可以从虚拟机本身访问它(使用sqlplus)。
我也可以从主机SSH进入虚拟机,我可以访问从主机的Web界面,当我导航到:
http://127.0.0.1:8080/apex
因此,VirtualBox的NAT设置似乎在一定程度上起作用。
当我执行lsnctrl状态时,听众似乎已经启动了。 listener.ora文件如下所示:
# listener.ora Network Configuration File: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)
当我尝试从主机进行连接时,出现以下错误(在CentOS中执行相同的命令时):
PS C:\Users\winuser> sqlplus system/[email protected] SQL*Plus: Release 11.2.0.3.0 Production on Fr Jul 12 16:56:25 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-12154: TNS:could not resolve the connect identifier specified
端口1521似乎也在虚拟机中处于活动状态,并且在VirtualBox中适当地设置了端口转发:
[root@localhost admin]# nmap 127.0.0.1 Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-12 17:02 CEST Nmap scan report for localhost.localdomain (127.0.0.1) Host is up (0.0000050s latency). Not shown: 994 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 631/tcp open ipp 1521/tcp open oracle 8080/tcp open http-proxy Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
感谢您的任何提示或build议。
您不能使用IP地址连接到数据库。
跑
lsnrctl status
在客机上查找服务名称和实例名称(例如ORCL)。 然后在主机上编辑tnsnames.ora类似于这个:
ORCL= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=127.0.0.1) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=your_service_name_here) ) )
并尝试TNSPINGing它:
tnsping ORCL
它可以说类似“好(20毫秒)”最后运行sqlplus:
sqlplus user/password@ORCL
有关更多信息,请阅读Oracle文档: http : //www.oracle.com/pls/db112/portal.portal_db? selected=4&frame=# network_management
这听起来像是您的Oraclenetworkingconfiguration的问题。 可以使用networkingpipe理器,也可以手动编辑$ ORACLE_HOME / network / admin中的sqlnet.ora和tnsnames.ora。