oracle 数据库连接错误:ORA-12154,ORA-12523

起由:在本机启动两个数据库, orcl和HIS, 在服务端连接没有问题。采用客户端模式连接时,在PL/SQL连接数据库时,经常会报以下两个错误。

ORA-12154: TNS:could not resolve the connect identifierspecified

ORA-12523: TNS:listener could not find instance appropriate for the client connection

在后台,用SQLPlus命令connect 连接,显示CONNECTED。说明服务启动正常,只是PL/SQL连接不上数据库。

如果关掉一个数据库,只启动一个数据库时,连接就是好的。如果两个数据库启动后,再连接,就会继续报上面的错误,一个也连接不上。

客户端文件:tnsnames.ora,内容如下:

HIS =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = his)

)

)

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ORCL)

)

)

将HOST = 127.0.0.1改成HOST = LOCALHOST,如下:

HIS =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = his)

)

)

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = ORCL)

)

)

关闭PL/SQL, 重新再连接,OK,一切正常。

原来一直认为TCP连接中,127.0.0.1就是LOCALHOST,理解有误,尽管当前浏览器上访问时,127.0.0.1和LOCALHOST访问的是同一个地址。

相关推荐
爱上语文2 分钟前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端
陈敬雷-充电了么-CEO兼CTO1 小时前
推荐算法系统系列>推荐数据仓库集市的ETL数据处理
大数据·数据库·数据仓库·数据挖掘·数据分析·etl·推荐算法
MeshddY1 小时前
(超详细)数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版)
c语言·数据库·单片机
wuxinyan1231 小时前
Java面试题033:一文深入了解MySQL(5)
java·数据库·mysql·面试
萧曵 丶1 小时前
Spring @TransactionalEventListener
java·数据库·spring·事务·transactional·异步
坤坤不爱吃鱼1 小时前
【MySQL\Oracle\PostgreSQL】迁移到openGauss数据出现的问题解决方案
mysql·postgresql·oracle
胡斌附体1 小时前
mobaxterm终端sqlplus乱码问题解决
数据库·乱码·sqlplus·字符集设置
moon66sun2 小时前
开源项目XYZ.ESB:数据库到数据库(DB->DB)集成
数据库·esb
TDengine (老段)2 小时前
使用 StatsD 向 TDengine 写入
java·大数据·数据库·时序数据库·iot·tdengine·涛思数据
DarkAthena2 小时前
【GaussDB】深度解析:创建存储过程卡死且无法Kill会话的疑难排查
数据库·gaussdb