无法使用 sqlplus 连接到数据库:ORA-12154:TNS:无法解析指定的连接标识符

Posted

技术标签:

【中文标题】无法使用 sqlplus 连接到数据库:ORA-12154:TNS:无法解析指定的连接标识符【英文标题】:unable to connect to DB using sqlplus: ORA-12154: TNS:could not resolve the connect identifier specified 【发布时间】:2019-05-16 07:51:14 【问题描述】:

我正在尝试从一台 Linux 服务器通过sqlplus 连接到 DB,但出现以下错误:

SQL*Plus: Release 12.1.0.2.0 Production on Thu May 16 15:49:15 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

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


Enter user-name:

我在我的服务器上重新安装了oracle 客户端,希望它能解决问题,但没有运气!

用法:

$>sqlplus user_name/passwd@SID

欢迎任何帮助!!!

【问题讨论】:

【参考方案1】:

当您尝试连接到别名未包含在 TNSNAMES.ORA 文件中的数据库时,就会发生这种情况。例如:

SQL> connect scott/tiger@does_not_exist
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


Warning: You are no longer connected to ORACLE.
SQL>

所以,请检查您使用的 TNSNAMES.ORA 中的内容。


请注意,您安装的大多数 Oracle 软件产品都包含其自己的 TNSNAMES.ORA 文件。如果你的情况也是这样,我建议你:

在您的硬盘上创建一个目录(例如,c:\oralib) 将其中一个 TNSNAMES.ORA 文件放入其中 将您正在访问的所有数据库复制/粘贴到该文件中 创建名为 TNS_ADMIN 的环境变量,它将指向该目录 这样做,每个 Oracle 产品将只查看该 TNSNAMES.ORA 文件 此外,这意味着您只需维护一份文件副本,而不是所有副本

【讨论】:

以上是关于无法使用 sqlplus 连接到数据库:ORA-12154:TNS:无法解析指定的连接标识符的主要内容,如果未能解决你的问题,请参考以下文章

oracle无法连接到数据库实例

使用除 oracle 之外的另一个 linux 用户连接到 sqlplus

如何使用 sqlplus 以 sysdba 身份连接到不同的 oracle 实例?

在win7中输入sqlplus命令连接到windows server 2008上的Oracle数据库

如何在不使用@符号连接到DB的情况下连接到DB。调用sqlplus UNAME @ DBNAME /密码@ \ Filelocation

如何使用 python 子进程模块将 sqlplus 作为 sudo 连接到 oracle 用户?