无法使用 SQL Developer 连接到数据库(不是从 tnsnames.ora 获取)

Unable to connect to Database using SQL Developer (not picking up from tnsnames.ora)

我已经在我的 Linux Mint OS.

上安装了 Oracle 11g & SQL Developer

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

进行连接

Snapshot of my 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 开发人员:

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

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

(即使有 SYS/SYSDBA 凭据也无法连接到 SQL 开发人员)

我收到错误:

listener refused the connection ora-12514 listener does not currently know of service requested

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

但无法解决我的问题。

请不要将此问题标记为重复。 我对此深陷其中。

编辑:我正在尝试使用 :

进行连接

1) 连接类型:基本;作用:默认

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

错误:

listener refused the connection ora-12514 listener does not currently know of service requested

2)连接类型:TNS;作用:默认

指定连接标识符抛出:

no ocijdbc12 in java.library.path

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

The network Adapter could not establish the connection

但我可以使用 SYS 凭据和自定义用户凭据从终端访问 - sqlplus

终于!我可以使用 SQL Developer.

连接到数据库

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

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

我了解到 运行 SQL*来自终端的加号不需要 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