【发布时间】:2017-07-30 05:00:12
【问题描述】:
我已经在 Mac OS X EI Captain 中安装了 sqlplus Instantclient。
我可以通过在终端中输入以下命令来连接到数据库
sqlplus uname/pwd@//localhost:1521/myDB
我需要在没有完整连接字符串的情况下连接到数据库,只需输入sqlplus 然后输入用户名和密码,这会引发以下错误。
ERROR:
ORA-12545: Connect failed because target host or object does not exist
我设置了以下环境变量并创建了 tnsnames.ora。
export ORACLE_HOME=/opt/oracle/instantclient
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME
export NLS_LANG=AMERICAN_AMERICA.UTF8
export TNS_ADMIN=~/etc
export PATH=$PATH:$ORACLE_HOME
export ORACLE_SID=myDB
我不确定为什么会收到此错误。
下面是 ~/etc 位置下的 tnsnames.ora。
myDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost) (PORT = 1521))
(
CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = myDB)
)
)
【问题讨论】:
-
是的,这是一个错字。我使用 'sqlplus' 命令提示输入用户名和密码,然后它给出了这个错误。 "ORA-12545: 连接失败,因为目标主机或对象不存在"
-
尝试一件事。在 tnsnames.ora 中,检查是否没有拼写错误并且实际上有
(HOST = localhost)。如果是,请尝试将localhost更改为您机器的实际名称。例如TOM-PC或127.0.0.1或使用ifconfig获得的PC 的当前LAN IP 地址