相信使用过Oracle数据库的人必定碰到过“ORA-12154: TNS: 没法解析指定的链接标识符”错误,我在此作一个小小的总结。sql
在程序中链接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”,若是不习惯用这个来管理数据库能够不用启动。
OracleJobSchedulerORCL是管理Oracle中计划任务的,通常不用启动。
OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,若是不习惯在命令行下面操做数据库,能够不用启动。
OracleServiceORCL,OracleOraDb10g_home1TNSListener都须要开启,前者是主服务,后者是监听服务。oracle
当在Oracle客户端中配置好Net Manager中配置好服务后就能够经过咱们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增长了一行配置(因为个人Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。工具
# tnsnames.ora Network Configuration File: d:\Oracle\product\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\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种状况下若是咱们配置好了客户端Net Manager而后链接Oracle数据库,可能会出现“ORA-12154: TNS: 没法解析指定的链接标识符”这时,你就应该怀疑,我到底访问的是哪一个路径下的配置文件呢?此时可使用tnsping命令spa
若是你是在客户端Net Manager中配置的网络服务,可是此时解析出来的使用参数文件倒是D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种状况有两种解决办法:
第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都须要这么作,若是不想这么麻烦那就使用第二种解决办法。
第二:修改系统环境变量Path值,将D:\Oracle\product\10.2.0\client_1\bin;路径移至D:\Oracle\product\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就能够正常登录了。3d
须要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现不管你怎么设置,它依然不停的弹出“ORA-12154: TNS: 没法解析指定的链接标识符”。一样的问题也会出如今其余Oracle数据库管理软件中,好比Toad for Oraclecode
“ORA-12154: TNS: 没法解析指定的链接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要咱们了解了它的工做方式,冷静排查,相信很容易就可以找到问题的解决办法的。blog