问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决ORA-12154:TNS:无法解析指定的连接标识符

发布网友 发布时间:2022-04-22 21:17

我来回答

3个回答

懂视网 时间:2022-04-09 06:28

一、查看配置

oracle-db1-network-admin-listener.ora和tnsnames.ora

1.tnsnames.ora

数据库名称 =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 主机名称,例如,PC02320U.com.cn)(PORT = 1521(端口名)))
 (CONNECT_DATA =
 (SERVER = SHARED)
 (SERVICE_NAME = 数据库全局域名)
 )
 )

 2.listener.ora

(SID_DESC =
 (GLOBAL_DBNAME = 数据库名称)
 (ORACLE_HOME = D:oracleproduct10.1.0db_1(文件位置)) 
 (SID_NAME =数据库名称 )
 )


LISTENER =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST =本机域名)(PORT = 端口号))
 )
 )
 )

 

 

二、重启服务

计算机管理-服务与应用程序-服务-重启对应的服务

三、重启TNS

和上述方法类似

 

Oracle—TNS12154

标签:

热心网友 时间:2022-04-09 03:36

  在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154: TNS: 无法解析指定的连接标识符”。配置Oracle客户端详细步骤如下:
  安装好Oracle客户端之后,在开始菜单中依次找到“Oracle - OraClient10g_home1—>配置和移植工具—>Net Manager”并打开(Win7,Win8用户如果没有取得Administrator账号登陆需要以管理员方式运行),依次展开“Oracle Net配置—>本地—>服务命名”点击左侧“加号”配置新的网络服务
  

  最后,点击“下一步”完成即可,如果不知道或者忘记Oracle服务名可以通过查看服务获得,比如我这里配置的主机名是我本机,在我的电脑服务中找到oracle相关的服务
  

  通过上面的服务名称,可以看出我安装的服务名就是“ORCL”,或者在服务端通过SQL Plus使用sys账号登陆,输入命令
  show parameter service_name查看。
  OracleDBConsoleORCL是Oracle网页端管理工具的服务,访问地址一般为“http://127.0.0.1:1158/em/console/logon/logon”,如果不习惯用这个来管理数据库可以不用启动。
  OracleJobSchelerORCL是管理Oracle中计划任务的,一般不用启动。
  OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,如果不习惯在命令行下面操作数据库,可以不用启动。
  OracleServiceORCL,OracleOraDb10g_home1TNSListener都需要开启,前者是主服务,后者是监听服务。
  
  当在Oracle客户端中配置好Net Manager中配置好服务后就可以通过我们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\proct\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增加了一行配置(由于我的Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。
  

  # tnsnames.ora Network Configuration File: d:\Oracle\proct\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
  # Generated by Oracle configuration tools.

  ORCL =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = ORCL)
  )
  )

  如果在同一台电脑上面同时安装了Oracle客户端和服务端,那么在服务端的安装目录中也会存在同样的配置文件D:\Oracle\proct\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种情况下如果我们配置好了客户端Net Manager然后连接Oracle数据库,可能会出现“ORA-12154: TNS: 无法解析指定的连接标识符”这时,你就应该怀疑,我到底访问的是哪个路径下的配置文件呢?此时可以使用tnsping命令
  

  如果你是在客户端Net Manager中配置的网络服务,但是此时解析出来的使用参数文件却是D:\Oracle\proct\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种情况有两种解决办法:
  第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\proct\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\proct\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都需要这么做,如果不想这么麻烦那就使用第二种解决办法。
  第二:修改系统环境变量Path值,将D:\Oracle\proct\10.2.0\client_1\bin;路径移至D:\Oracle\proct\10.2.0\db_1\bin;前面即可一劳永逸。
  注意:造成以上这种情况出现的原因是:在一台电脑上同时安装了oracle客户端和数据库服务,并且是先安装客户端,再安装数据库服务造成的,如果先安装数据库服务,再安装客户端就不会出现这种情况了。
  根据以上方式配置完oracle后,相信在程序中就可以正常连接oracle数据库了。
  
  当我安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”,如果是Win7,Win8用户甚至可以会出现弹出一个白框的情况,这时需要以管理员身份运行PLSQL Developer,并且确保你的PLSQL Developer是读取的oracle客户端配置,直接取消登陆,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer就可以正常登陆了。
  

  需要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现无论你怎么设置,它依然不停的弹出“ORA-12154: TNS: 无法解析指定的连接标识符”。同样的问题也会出现在其他Oracle数据库管理软件中,比如Toad for Oracle
  
  “ORA-12154: TNS: 无法解析指定的连接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要我们了解了它的工作方式,冷静排查,相信很容易就能够找到问题的解决办法的。

热心网友 时间:2022-04-09 04:54

1、检查服务

出现这种问题,首先我们想到的是检查服务有没有问题OracleOraDb11g_home2TNSListener。在运行中输入services.msc,打开服务窗口,看看OracleOraDb11g_homeTNSListener这个服务是否正在运行,如果没有运行,则启动。

2、使用SQL PLUS测试连接。

如果还有问题,我们使用SQL PLUS测试是否能够连接。运行输入cmd,在命令提示符窗口中输入sqlplus sys/密码@数据库SID as sysdba如:

3、检查tnsnames.ora配置

在客户端的安装路径下,我的是D:\oracle\instantclient_12_1\NETWORK\ADMIN,创建一个文件,名为:tnsnames.ora,如果之前创建过了,则直接打开住里追加就行了。在tnsnames.ora中追加如下内容:

SID名 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = SID名))

注意SID名前面不能有任何其他字符,尤其是空格!

保存后,看看能不能登录。如果还不行,在pl/sql developer的登录窗口中点“取消”按钮,进入pl/sql developer后,执行“工具”-> “首选项” -> 连接,按下图所示进行配置(其中oracle主目录就是oracle客户端的路径)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
注册保险代理有限公司需要什么资料! 现在什么云手机性价比高一点? 50个可接双宾语的动词 为琵琶独奏曲《春江花月夜》配一首词或诗 我经常看到HI语音里会有什么魅力榜、贡献榜这些排名,我也一直在语音直播... 跨行通怎么激活 父母是农民不知道有没有纳税 普通农民可以算纳税人吗? 农民不交农业税了,是不是纳税人? 小红书上女生缺衣服穿的心情说说四十句 ...机使用sqlplus连接oracle 11g出错ORA-12547: TNS:lost contact_百度... oracle新建实例时报ORA-12547: TNS:lost contact错误,具体如图,求大神... 向oracle数据库导入数据不成功 oracle10g测试没成功ORA_12547:TNS:丢失链接 ...plsql连接数据库出现,ORA-12547:TNS:丢失连接,请问谁遇到过啊_百... 如何解决ORA-12547:TNS:lostcontact错误 ...sql连接不上oracle数据库了,报ORA-12547:tns丢失的错误 Oracle连接Ora-12547:TNS:丢失连接,该怎么解决 华为荣耀9桌面图标怎么偏左,该如何解决?如图,谢谢各位大神了🙏 急急…… 怎样彻底删除手机里的照片? 要换手机了,之前手机上的数据想要完全彻底删掉,怎么操作? 怎样彻底清理手机卸载残留? 手机中病毒了,怎么彻底清除! 怎么把手机数据彻底清除? 什么是流?它与文件之间的关系如何? 流,字开头的诗句有哪些? “流”的近义词是什么? 百战程序员:编程里所说的“流”是什么意思? 流,是什么意思 “流”的笔顺怎么写? oracle TNS问题 ORA-12154: TNS:could not resolve the connect identif... ora-12154:TNS:无法解析指定的连接标识符 - 信息提示 Ubuntu12.10 安装Oracle11g DBCA 时报ORA-12547: TNS:lost contact 登录Oracle数据库时提示“ORA-12514:TNS 监听程序当前无法识别连接描 ... ora-12537 tns 连接关闭怎么解决 ...总是提示正在连接...ORA-12541: TNS: 无监听程序 什么意思啊?科目二网上预约出现sql语言,是不是车管所那边数据出错了?一直约不上,其他人都约上了。 连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程_百度... oracle远程连接报ORA-12541:TNS:无监听程序 为什么买健康险,有用吗? 健康险有必要买吗,大家都说说自己的看法? 健康险有必要买吗?好不好? 健康险有什么作用吗?是必要的吗? 健康险有用吗?好处有哪些? 健康保险有必要买吗? 一般能保多久呢? 健康险有什么用,感觉好多人买了健康险,为什么要买健康险? 健康险到底保什么?有必要买吗? 商业健康险有用吗?可以不买吗? 健康险都可以保什么,有必要买吗?