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

Oracle 无法使用SQL Developer连接到数据库(未从tnsnames.ora获取),oracle,oracle-sqldeveloper,linux-mint,tnsnames,Oracle,Oracle Sqldeveloper,Linux Mint,Tnsnames,我已经在我的Linux Mint操作系统上安装了Oracle11g和SQLDeveloper 在ORACLE\u PATH和.bashrc文件中的相关变量设置后,我可以使用sqlplus进行连接 我的tnsnames.ora的快照 也尝试了(HOST=localhost) 我的本地主机和IP地址在/etc/hosts文件中提到 我已按照以下命令将TNSnames目录配置为sql developer: tools->Preferences->Database->advanced-

我已经在我的Linux Mint操作系统上安装了
Oracle11g
SQLDeveloper

ORACLE\u PATH
.bashrc
文件中的相关变量设置后,我可以使用
sqlplus
进行连接

我的tnsnames.ora的快照

也尝试了
(HOST=localhost)

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

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

tools->Preferences->Database->advanced->Tnsnames Directory (where tnsnames.ora is stored)
将ORACLE主页设置为
:/u01/app/ORACLE/product/11.2.0/xe/

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

我收到的错误信息:

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

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

  • 谷歌
  • 堆栈溢出
  • 博客
  • 其他解决方案
但无法解决我的问题

请不要把这个问题标为重复问题。 我被这件事难住了

编辑:我正在尝试使用以下方式连接:

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

主机名:Localhost;港口:1521;服务名称:xe

错误:

侦听器拒绝连接ora-12514侦听器当前未连接 了解所请求的服务

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

指定连接标识符引发:

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

网络适配器无法建立连接


然而,我能够使用SYS凭证和来自终端的自定义用户凭证进行访问-sqlplus

最终!我能够使用SQL Developer连接到数据库

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

我无法连接的原因是
没有TNS侦听器
(这是我在尝试从SQL命令行连接时得到的)

我理解的一点是,从终端运行SQL*Plus不需要TNS Listener进行连接

为了解决这个问题,我必须替换
Listener.ORA
文件中的
HOST

(地址=(协议=TCP)(主机=本地主机)(端口=1521))

然后我重启监听器

lsnrctl stop

lsnrctl start

您使用的是连接类型TNS吗?你试过直连吗?只需在连接详细信息中为SID(服务ID)提供主机名、端口和“xe”。@thatjeffsmith我已更新了我的问题以与您保持一致。如果这种情况再次发生,您可以在SQLDev中使用bequeath连接类型,那么它也可以在没有侦听器的情况下连接到db。@thatjeffsmith,感谢您提供有关bequeath的信息!顺便说一句,我在从下拉列表中选择本地/遗赠连接类型时出错:
java.library.path中没有ocijdbc12
no ocijdbc12 in java.library.path
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0) (PORT = 1521))
lsnrctl stop

lsnrctl start