Macos Mac OSX上的Oracle,从虚拟机访问
我已经在Mac OSX Snowleopard上安装了Oracle,据我所知,这是Snowleopard的唯一有效安装指南 只要我只在MacOX下的Mac上使用Oracle,它就工作得很好,没有问题 现在我在Mac上有一个虚拟机(与桌面5并行),在这个虚拟机上运行的是Windows XP。我想从Windows下的VM访问在Mac OSX上运行的Oracle数据库。从逻辑上讲,这就像从另一台计算机访问。但总是在我尝试从XP访问时,例如使用sqlplusMacos Mac OSX上的Oracle,从虚拟机访问,macos,oracle,osx-snow-leopard,virtualization,virtual-machine,Macos,Oracle,Osx Snow Leopard,Virtualization,Virtual Machine,我已经在Mac OSX Snowleopard上安装了Oracle,据我所知,这是Snowleopard的唯一有效安装指南 只要我只在MacOX下的Mac上使用Oracle,它就工作得很好,没有问题 现在我在Mac上有一个虚拟机(与桌面5并行),在这个虚拟机上运行的是Windows XP。我想从Windows下的VM访问在Mac OSX上运行的Oracle数据库。从逻辑上讲,这就像从另一台计算机访问。但总是在我尝试从XP访问时,例如使用sqlplus sqlplus iwes/iwes@192.
sqlplus iwes/iwes@192.168.3.2:1521/dbname
(192.168.3.2它是使用“仅主机联网”的MacOS地址。此地址在其他应用程序中运行良好。)然后我得到了错误信息
ERROR:
ORA-12541: TNS: Kein Listener [German for: "no listener"]
(在Mac OSX上,Oracle和侦听器都已启动并工作)
我的Oracle安装中有什么错误或缺失
这是我的听众
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = dbname)
(ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME = dbname)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
还有我的名字
dbname =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbname)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
您的listener.ora应该指定192.168.3.2作为主机,而不是localhost 您的tnsnames.ora应该指定192.168.3.2作为别名dbname的主机(如果您使用tnsnames.ora) 在您的示例中,您不使用tnsnames.ora,而是直接跳到mac的ip地址。
还要检查mac电脑上的防火墙。答对了!就这样。更改主机名解决了这个问题。(我仍然认为这是不合逻辑的,因为localhost和192.168.3.2是同一台计算机,但这不需要我们讨论。)不,localhost应该始终是127.0.0.1