与虚拟机Oracle连接出现ora-12154问题的解决方法
谈到ora-12154问题,网上有一大堆解决方法,原因基本统一:tns或listener配置不正确。对于listener配置不正确的一般较少发生,大多数人都是按照默认配置一路“下一步”过来的,基本都是orcl的服务名,如果说本地可以连通orcl,别的机子就连不通那应该跟listener关系不大。大部分都是tns配置不正确。我遇到的现象是:在本机建了一个2003的虚拟机,虚拟机里面装了oracle10g,默认配置。本机只装了oracle10g的客户端,当我以前用本机连接局域网内数据库的orcl服务(数据库与局域网内数据库一样)时没有问题,但是在连接虚拟机中的orcl服务却连不通,总是报ora-12154错误。而虚拟机内,plsql却可以连接虚拟机oracle,但是不能连接本机所在局域网内的oracle。
按照如下过程,一般都能解决:
- 在虚拟机内开cmd,用lsnrctl status查看监听器监听的服务
- 如看到监听服务“orcl”,那在本机的tns配置中(SERVICE_NAME = orcl)必须写orcl;如果想要自定义,则在虚拟机内的listener配置中就要加入自定义服务名,记得要重启监听服务:lsnrctl reload
- 最后形成的配置文件如下
虚拟机listener:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = test) 自定义服务名 (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) db_home (SID_NAME = test) ) (SID_DESC = (PROGRAM = extproc) (SID_NAME = PLSExtProc) (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) ##这个服务保证你可以使用外部过程,如C程序 ) )
本机tns:
ORCL_XNJ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) 与自定义服务名对应 ) )
再次连接,问题解决!
记住,一定从最简单的原因找起,不要一上去就看到网上的什么改process数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。
相关文章
plsql连接oracle数据库报ora 12154错误解决方法
今天遇到一个问题,plsql连接oracle数据库报ora 12154错误,本文将为您详细介绍此等问题的解决方法2012-11-11
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
Oracle 的安装和卸载相较于其他 mysql 要麻烦些,小编特此分享一篇教程关于Oracle11g 彻底卸载干净并重新安装,有需要的朋友可以参考下本文2021-06-06
Oracle数据库基本操作及Spring整合Oracle数据库详解
这篇文章主要介绍了Oracle数据库的基本概念、特点和操作权限,以及如何在Spring Boot中整合Oracle数据库,包括导入依赖、配置文件设置、实体类、Dao层和测试,需要的朋友可以参考下2025-02-02
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
这篇文章主要为大家详细介绍了安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法,感兴趣的小伙伴们可以参考一下2016-07-07
Oracle数据库rownum和row_number的不同点
在Oracle中,有一个很有趣的东西,那就是rownum。当你从某个表中查询数据的时候,返回的结果集中都会带有rownum这个字段,而且有时候也可以使用rownum进行一些条件查询2015-11-11


最新评论