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

时间:2018-03-24 19:20:38

标签: oracle oracle-sqldeveloper linuxmint tnsnames

我安装了Oracle 11g&我的Linux Mint OS上的SQL Developer

ORACLE_PATH文件中设置.bashrc及相关变量后,我可以使用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)

我在/etc/hosts文件中提到了我的localhost和IP地址。

我按照以下命令将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)连接类型:基本;角色:默认

主机名:Localhost;港口:1521; SERVICE_NAME:xe

错误:

  

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

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

指定连接标识符抛出:

no ocijdbc12 in java.library.path

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

  

网络适配器无法建立连接

然而,我可以使用SYS凭证访问&来自terminal-sqlplus

的自定义用户凭据

1 个答案:

答案 0 :(得分:0)

<强>最后!我可以使用SQL Developer连接到数据库。

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

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

我明白从终端运行SQL * Plus不需要TNS Listener连接。

要解决此问题,我必须替换Listener.ORA文件中的(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

  

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

lsnrctl stop

lsnrctl start

然后我重启监听器,

glob