无法使用 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
我已经通过以下帖子尝试了几乎所有的解决方案:
- Google
- Whosebug
- 博客
- 其他解决方案
但无法解决我的问题。
请不要将此问题标记为重复。
我对此深陷其中。
编辑:我正在尝试使用 :
进行连接
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
我已经在我的 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
我已经通过以下帖子尝试了几乎所有的解决方案:
- Whosebug
- 博客
- 其他解决方案
但无法解决我的问题。
请不要将此问题标记为重复。 我对此深陷其中。
编辑:我正在尝试使用 :
进行连接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