PL/SQL点了登录无反应,测试结果是ORA-12541: TNS: 无监听程序

本文记录了Oracle数据库及PL/SQL Developer安装配置过程中的常见问题与解决办法,包括账户密码验证、远程访问配置、监听程序设置和服务启动等方面。

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

转载请注明作者(独孤尚良dugushangliang)出处:https://blog.youkuaiyun.com/dugushangliang/article/details/81390164

 

当经验不足的时候,遇到提示的一些问题,尝尝束手无策,我这两天就是备受折磨,能力不足的束手无策。理论上是可以解决的,然而实际上并不知道问题所在,这是一个很尴尬的事情。虽然现在搜不到我写下的这些博客,新的博客还是要写的,因为指不定哪天就可以给大家带来很大的帮助呢?

为何这么说,我安装oracle、PL/SQL Developer并配置调试的过程,就是这样的。面对搜索出的纷繁的可能的解决方案,我得耐着性子一点点去看、去想、去试验。对于总是遇到看过的不想看的内再次充斥我的眼前,我也是百般无奈无可奈何。我也发现,由于各人的基本情况不同,有些设置不同,所以在 oracle这块的设置,也会出现完全相同的设置却没有相同的结果。这是为什么?那是因为还有忽略的其他原因存在。

如果账户密码是对的,并且oracle可以访问,出现PL/SQL Developer登录后无响应卡死的现象也常见的。所以首先先确认下账户密码是否正确。如果是远程的别的机器,那就现在那个机器上登录下看看。远程oracle和直接本机登录有些地方是有可能不同的,比如我本机可以使用所有的权限,而远程的oracle有些账户、有些权限不能用。如果不确定的话,可以参照另一个也是远程oracle的机器对比下看看。这个叫做控制变量法。做一个事情,就是一套流程,但凡其中任何一个环节出现问题,都会影响整体。如果不是经验很丰富的一看就知道是哪里的问题,不妨和我一样,一个一个的环节去排除。

怎么知道oracle是否可以访问了?cmd打开命令行,即win键+R键,输入cmd,运行cmd命令行。假设你要远程的oracle所在的机器的ip是12.34.56.78,可以输入“tnsping 12.34.56.78”并查看效果。如果是本机的oracle,一般安装时候都是本机的计算机名,如我的是idea-PC,我的输入是下图所示:

这个tnsping通过了,就可以考虑下一个环节,考虑别的地方的问题了。(这个通过不一定是没有问题,只是一般可以先考虑别的地方的问题)

win桌面左下角打开程序中oracle的Net Manager,这里配置监听程序(本机安装的oracle是需要配置这个的)。如果不知道怎么配置,可以自行百度“oracle 配置监听程序”,能很容易找到相关的内容。如果哪天找不到了,问搜索引擎发生了什么吧。

我这电脑重启了好多次,反反复复,各种说法都试过了,还是各种各样的问题,层出不穷。偶然就莫名其妙登录了,是的,就莫名其妙。不过莫名其妙登录后休眠了一会,再登也登不上了,重启电脑几次,原来可以登录的另一个也不能登录了。这里感谢ZhangYaohui(https://blog.youkuaiyun.com/u013991521/article/details/72628122)的启发。我查看了服务,是这里的问题。这些服务启动后就可以了。理论上它们是要随同开机自动启动的,天知道发生了什么,该发生的事情没有发生。

下面这个服务,指的是它是Oracle的服务,orcl是我的实例,即我安装的Oracle的数据库的名字。如果你取得名字是SKJ,那你对应要启动的服务应该是OracleServiceSJK。另一个就是TNSListener服务了。这个服务不开,就会提示你“ORA-12541: TNS: 无监听程序”。所以遇到这个问题,要确定有没有监听程序,也要确定相应的服务是否开启了。

那么PL/SQL developer为什么登录后不久,任务管理器就显示无响应?直到最后卡死?有人说这是因为PL/SQL本身的原因。要它登录,那就一直试着登录,不给任何反馈。即,我让A把B喊过来,A在B家门口进不去,就一直傻等着,这软件就有些A的呆傻,没人你等一会也跑回来给我说下情况啊,结果你傻等着不回来了。我又没说“做不到就不要回来见我了”。言归正传,这个问题,一般就是其他环节有问题,所以遇到这个情况,先看看别的环节是否正常,比如是否可以连接数据库。如果可以,再考虑账户的权限、监听的问题。如果不可以连接,就分析是不是数据库安装失败,还是哪里的问题。

 

独孤尚良dugushangliang——著

### ORA-12541 TNS:监听程序错误解决方案 ORA-12541 错误通常表示客户端尝试连接到 Oracle 数据库时,未能找到正在运行的监听器服务。以下是针对此问题的具体分析和解决方法: #### 一、确认监听器状态 首先需要验证监听器是否正常启动并处于活动状态。可以通过以下命令检查监听器的状态: ```bash lsnrctl status ``` 如果返回 `TNS-12541: TNS:no listener` 或类似的错误消息,则表明监听器未启动或配置不正确[^1]。 #### 二、启动监听器 如果监听器未启动,可以手动启动它: ```bash lsnrctl start ``` 成功启动后再次执行 `lsnrctl status` 命令以确认其已正常工作[^1]。 #### 三、检查防火墙设置 防火墙可能会阻止监听器接收来自外部的请求。因此需确保防火墙允许通过端口 1521 的流量。具体操作如下: 1. 关闭所有防火墙设置。 2. 如果需要保留部分防火墙功能,则应打开入站规则中的两个必要项,并确保端口 1521 被列入例外列表中[^2]。 #### 四、调整Oracle 配置文件 对于某些环境而言,默认配置可能不足以支持远程访问需求,这时就需要编辑以下几个关键配置文件来修正路径及参数设定。 ##### (1)修改 tnsnames.ora 文件 定位至 Oracle 安装目录下的 `\NETWORK\ADMIN` 子目录下寻找名为 `tnsnames.ora` 的文档,在其中定义的服务名对应的条目里加入一行指定主机 IP 地址的信息,例如: ```plaintext (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.207)(PORT = 1521)) ``` 这里替换掉原有的 HOST 字段为空字符串的部分,填上实际服务器使用的固定IP地址[^2]。 ##### (2)更新 listener.ora 文件 同样位于上述相同位置内的另一个重要配置文件叫做 `listener.ora` ,也需要做相应的改动以便匹配新的网络接口信息。添加同样的 `(ADDRESS ...)` 行进去即可完成同步更改过程[^2]。 注意:切勿随意篡改预设好的 LISTENER_ORCL 条件块内容以免影响本地实例间的通信能力[^2]! 最后一步就是重新加载最新的配置数据让它们生效: ```bash lsnrctl reload ``` 经过以上步骤处理之后再试一次原来的PL/SQL Developer工具登录动作应该就不会碰到那个恼人的 ORA-12541 报错了。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值