Oracle连接出现TNS:no listener或者ORA-12514: TNS:listener does not currently know

本文介绍了Oracle数据库中监听器配置错误导致的问题及解决方案,包括Message850notfound错误与ORA-12514错误的具体解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、Message 850 not found; No message file for product=network, facility=NL

 提示框:TNS:no listener

解决办法:

重新配置监听程序

点重新配置,一路next……

2、ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:

解决办法:

找到E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora,

将原来的用#号注释掉,修改为红框中的(根据安装目录修改)

 然后在服务中

(1)关闭OracleServiceORCL

(2)关闭OracleOraDb11g_home1TNSListener

(3)启动OracleServiceORCL

(4)启动OracleOraDb11g_home1TNSListener

OK

 

### 问题分析 在使用 Navicat 连接 Oracle 数据库时,出现 **ORA-12514: TNS:listener does not currently know of service requested in connect descriptor** 错误通常表示客户端尝试连接数据库服务未被监听器识别。这可能是由于 Oracle 监听器配置不当、数据库服务未注册、或连接描述符(如 `tnsnames.ora`)配置错误所致。 ### 解决方案 #### 1. 检查监听器配置 确保 `listener.ora` 文件中的配置正确,监听器应包含目标数据库的服务名。例如: ```plaintext SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1) ) ) ``` 修改完配置后,重启监听器服务: ```bash lsnrctl stop lsnrctl start ``` #### 2. 检查数据库服务是否注册到监听器 登录数据库并执行以下命令,确认服务名已正确注册到监听器中: ```sql SQL> show parameter service_names; ``` 如果服务名未注册,可以手动注册: ```sql SQL> alter system set service_names='ORCL' scope=both; ``` #### 3. 配置 `tnsnames.ora` 文件 确保 `tnsnames.ora` 文件中配置了正确的连接描述符。例如: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ``` 将 `tnsnames.ora` 文件放置在 Oracle 客户端的网络配置目录中,例如 `ORACLE_HOME/network/admin/`。 #### 4. 使用 EZConnect 简化连接 如果不想配置 `tnsnames.ora` 文件,可以使用 EZConnect 方式连接数据库。在 Navicat 中,连接类型选择“EZConnect”,然后输入如下格式的连接字符串: ``` host:port/service_name ``` 例如: ``` localhost:1521/ORCL ``` #### 5. 检查 Oracle 服务是否启动 确保 Oracle 数据库实例和监听器服务均已启动。可以通过以下命令检查: ```bash sqlplus / as sysdba SQL> startup ``` #### 6. 检查防火墙设置 确保客户端与数据库服务器之间的端口(默认 1521)未被防火墙阻挡。可以使用以下命令测试端口连通性: ```bash telnet localhost 1521 ``` #### 7. 检查 Navicat 配置 确保 Navicat 中的连接配置正确,包括主机名、端口、服务名等信息与 `tnsnames.ora` 或 EZConnect 字符串一致。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值