今天在虚拟机里面装了个Oracle,之后发现不能从主机访问,觉得是监听程序配错了,开始修改listener.ora(路径是:c:\app\xp\product\11.2.0\dbhome_1\NETWORK\ADMIN),把监听的主机由 localhost 改成虚拟机的IP。
如下:
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
- )
- (DESCRIPTION =
- #原来的是(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ,也就是把localhost改成你自己机器的ip
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.24.128)(PORT = 1521))
- )
- )
这里再用:sqlplus /@orcl as sysdba 连接,oracle会报:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务,通过在这个文件里面加条配置就可以解决:
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (SID_NAME = CLRExtProc)
- (ORACLE_HOME = C:\app\xp\product\11.2.0\dbhome_1)
- (PROGRAM = extproc)
- (ENVS = "EXTPROC_DLLS=ONLY:C:\app\xp\product\11.2.0\dbhome_1\bin\oraclr11.dll")
- )
- #这是新加上去的
- (SID_DESC =
- (GLOBAL_DBANAME = orcl)
- (SID_NAME = orcl)
- (ORACLE_HOME = C:\app\xp\product\11.2.0\dbhome_1)
- )
- )