tnsping通却连接不上数据库

本文详细介绍了如何解决在WindowsXP环境下安装Oracle 11gR2数据库时出现的连接问题,重点在于确认并正确配置数据库的SERVICE_NAME。通过对比tnsping和实际连接过程,解释了配置不正确可能导致的连接失败,并提供了通过修改tnsname.ora文件解决此问题的步骤。

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

今天在Windows XP上装可个11gR2数据库,却出现个很奇怪的问题,客户机和plsqldev都连不上数据库,提示ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务。
——————tnsping—————————–
C:\Documents and Settings\Administrator>tnsping stream
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 – Production on 31-8月 –
2011 15:34:07
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件: D:\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0 .0.1)
(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = stream)))
OK (0 毫秒)

—————-客户机连接数据库———————–
C:\Documents and Settings\Administrator>sqlplus scott/tiger@stream
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8月 31 15:34:19 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR: ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
为什么tnsping是OK的 但是连接时说监听程序当前无法识别连接描述符中请求的服务呢?这是因为tnsping的时候只是根据tnsname.ora文件中记录的这个字符串相应的IP地址去查看对应的端口是否开发,而不会去验证SERVICE_NAME是否正确,SERVICE_NAME如果配置的不正确是不能连接上数据库的。
下面是我做的相关测试
———————-查看数据库的SERVICE_NAME—————–
SQL> show parameter service_name
NAME TYPE VALUE
————————————
service_names string stream
可以看到这个数据库的service_name是stream,修改tnsname.ora文件,将service_name改成orcl试试tnsping是否还通。
————————–修改tnsname.ora文件—————
STREAM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = stream)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

———————–tnsping stream————————-
C:\Documents and Settings\Administrator>tnsping stream
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 – Production on 04-9月 -
2011 10:22:42
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = strea
m)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
OK (30 毫秒)
可以看到SERVICE_NAME = orcl,tnsping仍然OK,在试下这样是否可以连接上数据库。
——————-连接数据库————-
C:\Documents and Settings\Administrator>sqlplus stream/stream@stream
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 9月 4 10:25:19 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
请输入用户名:
实验结果已经连接不上数据库,在将tnsname.ora文件改成真正的SERVICE_NAME,再次连接数据库
——————tnsname.ora——————–
STREAM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = stream)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = stream)
)
)

——————–再次连接数据库————————-
C:\Documents and Settings\Administrator>sqlplus stream/stream@stream
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 9月 4 10:28:50 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
连接数据库成功,远程登录数据库的时候,是依赖于数据库服务端SERVICE_NAME,如果遇到tnsping通但是连接不上数据库的时候,一定要仔细检查是否是SERVICE_NAME配置的不正确。

 

资源下载链接为: https://pan.quark.cn/s/502b0f9d0e26 在进行STM32F103C8T6与HC - 06蓝牙模块、PC端以及ROS(机器人操作系统)的串口信测试时,我们编写了以下程序。 硬件连接 将STM32F103C8T6的USART1的TX(PA9)引脚与HC - 06的RX引脚相连,同时将USART1的RX(PA10)引脚与HC - 06的TX引脚相连,以实现两者之间的串口信。 另外,过串口转USB模块(如CH340等)将STM32F103C8T6与PC端连接起来,方便在PC端进行信数据的发送和接收。 程序功能 初始化USART1,设置波特率为9600,用于与HC - 06信。同时,初始化USART2(连接串口转USB模块),波特率同样设置为9600,用于与PC端信。 在主循环中,STM32F103C8T6断检测USART1和USART2是否有数据接收。当从USART1(HC - 06)接收到数据时,将数据暂存到一个缓冲区中,然后过USART2发送给PC端。反之,当从USART2(PC端)接收到数据时,也暂存到缓冲区,再过USART1发送给HC - 06。这样就实现了STM32F103C8T6作为中间节点,将HC - 06与PC端的数据进行转发。 硬件连接 HC - 06蓝牙模块过串口与STM32F103C8T6连接,如上所述。 程序功能(蓝牙信部分) HC - 06在默认状态下会自动进入配对模式,等待与手机或其他蓝牙设备配对。当配对成功后,它会将从蓝牙设备接收到的数据过串口发送给STM32F103C8T6。同时,它也会将STM32F103C8T6发送过来的数据转发给已配对的蓝牙设备。在本测试程序中,主要关注其与STM32F103C8T6之间的串口信功能,确保数据能够正确地在两者之间传输。 硬件连接 过串口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值