ORA-12154: TNS:could not resolve the connect identifier specified


这个错误主要是pl/sql客户端的tnsnames.ora配置错误,或者是输入 database选项错误。

配置pl/sql的Database的两种方式:
登录时直接在Database选项输入数据库信息

如上图,直接在登录时输入数据库信息 ip:端口/数据库名 。(若不为默认端口1521,一定要输入端口,不然会报错误“无监听程序”)。

修改tnsnames.ora
如下图,找到pl/sql客户端的安装目录,再找到network/admin目录下的tnsmames.ora

编辑tnsnames.ora,在末尾添加需要的数据库信息:
如图:

这里我配置的数据库名为scm,数据库服务器的IP地址(HOST),端口为1521,注意别名scm前不要带空格。

scm =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCM)
)
)
再打开pl/sql客户端,Database选项选择刚才配置的scm,输入用户名和密码即可。如图:

当发现使用IP可以登录正常,但是别名无法登录时,继续向下看

 

      解决了 Initialization error Could not load  的问题,在登陆界面填写完信息进行登录时,又出现了另一个

问题 ORA-12154: TNS:could not resolve the connect identifier specified ,即无法解析指定的连接

标识符。这说明缺少了一个环境变量,TNS_ADMIN 。

      解决方法:

windows:

右击 我的电脑 -> 属性 -> 高级 -> 环境变量 -> Administrator 的用户变量 -> 新建 ,

                          变量名为:TNS_ADMIN

                         

                          变量值为:%ORACLE_HOME%/NETWORK/ADMIN/

                                              其中 %ORACLE_HOME% 即 Orcale 的安装路径,

    其实,设置的该环境变量的值为 tnsnames.ora文件所在路径,特别是重装后或其它操作,忘了设置

TNS_ADMIN 变量,PL/SQL 登陆就会报“无法解析指定的连接标识符”的错误 ,而设置TNS_ADMIN变

量是为了能够找到 tnsnames.ora。如果本机上安装了ORACLE,并且设置了 ORACLE_HOME 环境变

量,那么会自动在 %ORACLE_HOME%/NETWORK/ADMIN/位置查找 tnsnames.ora 文件。

 这里是Linux的配置

vim ~/ .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=yidongapptestdb; export ORACLE_HOSTNAME
ORACLE_UNQNAME=MIBD11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=MIBD11G; export ORACLE_SID
PATH=/usr/bin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin



参照博客:ORA-12154: TNS:could not resolve the connect identifier specified

                  https://blog.csdn.net/u012852374/article/details/54346203

相关