【问题标题】:ORA-12545: Connect failed because target host or object does not exist in Mac - SQLPLUSORA-12545: 连接失败,因为目标主机或对象在 Mac 中不存在 - SQLPLUS
【发布时间】: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-PC127.0.0.1 或使用ifconfig 获得的PC 的当前LAN IP 地址

标签: oracle macos sqlplus


【解决方案1】:

设置TWO_TASK environment variable定义默认连接字符串,例如

export TWO_TASK=${ORACLE_SID}

同时使用tnsping myDB 测试配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 2016-03-20
    • 1970-01-01
    • 2021-01-07
    • 2021-04-11
    • 2013-08-17
    • 2017-04-04
    • 2016-04-02
    相关资源
    最近更新 更多