【问题标题】:Unable to connect to Database using SQL Developer (not picking up from tnsnames.ora)无法使用 SQL Developer 连接到数据库(未从 tnsnames.ora 获取)
【发布时间】:2018-03-24 19:20:38
【问题描述】:

我已经在我的 Linux Mint 操作系统上安装了 Oracle 11gSQL Developer

.bashrc文件中设置ORACLE_PATH和相关变量后,我可以使用sqlplus进行连接。

我的 tnsnames.ora 快照

  XE =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = XE)
          )
        )

 EXTPROC_CONNECTION_DATA =
            (DESCRIPTION =
              (ADDRESS_LIST =
                (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
              )
              (CONNECT_DATA =
                (SID = PLSExtProc)
                (PRESENTATION = RO)
              )   
    )

也尝试过(HOST = localhost)

我的本​​地主机和 IP 地址在 /etc/hosts 文件中提及。

我已按照以下命令将 TNSnames 目录配置为 sql developer:

tools->Preferences->Database->advanced->Tnsnames Directory (where tnsnames.ora is stored)

ORACLE_HOME设置为:/u01/app/oracle/product/11.2.0/xe/

(即使使用 SYS/SYSDBA 凭据也无法连接到 SQL Developer)

我收到错误:

监听器拒绝连接 ora-12514 监听器当前不知道请求的服务

我通过以下帖子尝试了几乎所有单一的解决方案:

  • 谷歌
  • 堆栈溢出
  • 博客
  • 其他解决方案

但无法解决我的问题。

请不要将此问题标记为重复。 我对此感到很困惑。

编辑:我正在尝试使用连接:

1) 连接类型:基本;角色:默认

主机名:本地主机;端口:1521; SERVICE_NAME:xe

错误:

监听器拒绝连接 ora-12514 监听器当前没有 了解请求的服务

2) 连接类型:TNS;角色:默认

指定连接标识符抛出:

no ocijdbc12 in java.library.path

指定网络别名“XE”(从下拉菜单中选择)抛出:

网络适配器无法建立连接

但我可以使用 SYS 凭据和来自终端 sqlplus 的自定义用户凭据进行访问

【问题讨论】:

  • 您使用的是连接类型,TNS 吗?你试过直接连接吗?只需在连接详细信息中为 SID(服务 ID)提供主机名、端口和“xe”。
  • @thatjeffsmith 我已经更新了我的问题以与您保持一致。

标签: oracle oracle-sqldeveloper linux-mint tnsnames


【解决方案1】:

终于!我可以使用 SQL Developer 连接到数据库。

(我已经验证端口 1521 已打开 并且能够使用端口 1521 ping 本地主机 并且没有被防火墙阻止)

我无法连接的原因是No TNS listener(这是我在尝试从 SQL 命令行连接时得到的)

我知道从终端运行 SQL*Plus 不需要 TNS 侦听器来连接。

为了解决,我不得不在Listener.ORA 文件中替换HOST

来自

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0) (PORT = 1521))

然后我重新启动监听器,

lsnrctl stop

lsnrctl start

【讨论】:

  • 如果再次发生这种情况,您可以在SQLDev中使用bequeath连接类型,那么它也可以在没有监听器的情况下连接到数据库。
  • @thatjeffsmith,感谢您提供有关遗赠的信息!顺便说一句,我在从下拉列表中选择本地/遗赠连接类型时收到此错误:no ocijdbc12 in java.library.path
猜你喜欢
  • 1970-01-01
  • 2015-08-30
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多