前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle连接出现ora-12154,与虚拟机Oracle连接出现ora-12154问题的解决方法

oracle连接出现ora-12154,与虚拟机Oracle连接出现ora-12154问题的解决方法

作者头像
全栈程序员站长
发布2022-09-09 11:23:11
8580
发布2022-09-09 11:23:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

谈到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数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161561.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档