Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

在 Linux 环境下,Oracle 数据库报错 TNS-12541: TNS:no listener 表示客户端无法连接到 Oracle 监听器(Listener),这通常意味着监听器未启动、配置错误或网络不通。

以下是系统化的排查和解决步骤:

PL/SQL Developer无法登录Oracle报错“ORA-12541:TNS:”无监听程序解决方式
加载中
PL/SQL Developer无法登录Oracle报错“ORA-12541:TNS:”无监听程序解决方式

检查监听器是否正在运行

确认监听器进程是否存在。

# 切换到 oracle 用户
su - oracle
# 检查监听器状态
lsnrctl status
  • 如果显示 “TNS-12541” 或 “TNS:no listener”:说明监听器未启动。
  • 如果显示 “Listening on…”:说明监听器正在运行,问题可能在网络或配置上。

启动监听器

如果监听器未启动,尝试手动启动它:

lsnrctl start
  • 如果启动成功:再次运行 lsnrctl status 确认状态。
  • 如果启动失败:查看日志文件获取详细错误信息:
    • 默认日志路径:$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml
    • 或查看 listener.log 文件(通常在 $ORACLE_HOME/network/log/ 下)

检查监听器配置文件 listener.ora

监听器配置错误是常见原因,检查 $ORACLE_HOME/network/admin/listener.ora 文件。

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

示例正确配置:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <your_server_ip_or_hostname>)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = <your_db_name>)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = <your_sid>)
    )
  )

常见错误:

  • HOST 设置错误:HOST 设置为 localhost,远程客户端无法连接,应设置为服务器的主机名或 IP 地址。
  • 端口冲突:确保 1521 端口未被其他程序占用。
  • SID 不匹配:SID_NAME 必须与数据库实例名一致。

修改后,重启监听器:

lsnrctl stop
lsnrctl start

检查防火墙和网络设置

即使监听器在运行,防火墙也可能阻止连接。

检查防火墙状态:

# 检查 firewalld(CentOS/RHEL)
sudo firewall-cmd --state
# 检查 iptables
sudo iptables -L -n | grep 1521

开放端口(如果需要):

# 如果使用 firewalld
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
# 如果使用 iptables
sudo iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

测试网络连通性:

从客户端机器测试:

telnet <server_ip> 1521
# 或
nc -zv <server_ip> 1521

检查 /etc/hosts 文件

确保服务器的主机名能正确解析为 IP 地址。

hostname
cat /etc/hosts
  • hostname 返回的主机名在 /etc/hosts 中没有对应的 IP 映射,监听器可能无法正确绑定地址。
  • 确保 /etc/hosts 中包含类似如下行:
    168.1.100   your_server_hostname

检查数据库实例是否注册到监听器

有时监听器在运行,但数据库实例未注册(静态注册或动态注册失败)。

检查动态注册:

lsnrctl status

查看输出中是否有 Instance "<sid>", status READY 或 BLOCKED,如果没有,可能需要静态注册(见第 3 步 SID_LIST_LISTENER)。

强制注册:

在数据库中执行:

ALTER SYSTEM REGISTER;

检查 sqlnet.ora 配置

检查 $ORACLE_HOME/network/admin/sqlnet.ora 文件,确保没有阻止监听的参数。


检查权限和文件所有权

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

确保 listener.ora、tnsnames.ora 和 sqlnet.ora 文件的所有者是 oracle 用户,并且权限正确(通常为 644)。

chown oracle:oinstall $ORACLE_HOME/network/admin/.ora
chmod 644 $ORACLE_HOME/network/admin/.ora

查看日志文件

如果以上步骤都无法解决问题,查看监听器日志文件以获取详细错误信息:

  • 日志位置:$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml
  • 或使用 tail 命令:
    tail -f $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml

总结排查流程

  1. lsnrctl status → 确认监听器状态。
  2. lsnrctl start → 启动监听器。
  3. 检查 listener.ora → 确认 HOST、PORT、SID 配置正确。
  4. 检查防火墙 → 确保 1521 端口开放。
  5. 检查 /etc/hosts → 确保主机名解析正确。
  6. 查看日志 → 根据日志错误进一步排查。

如果问题仍然存在,请提供 lsnrctl status 的输出和 listener.ora 的内容(隐藏敏感信息),以便进一步分析。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/476474.html

赞 (0)
h5模板建站视频教程怎么用?零基础小白建站教程
上一篇 2026年7月9日 21:42
cdn安全技术有哪些,cdn安全防护原理
下一篇 2026年7月9日 21:44

相关推荐

  • 为什么新购买实例比规格变更便宜?怎么发优惠券通知

    新购买实例比规格变更实例价格便宜,核心原因在于云厂商定价策略中,新购享有专属抵扣、新用户补贴和活动促销,而规格变更必须按原价补差价,不受优惠覆盖,为什么新购买实例比规格变更实例价格便宜云服务器实例的定价逻辑,从来不是单纯按配置算成本,行业内共识是,新购是云厂商拉新的核心手段,规格变更则是存量用户的付费补充, 两……

    2026年8月2日
    600
  • 百度智能云双11特惠云服务器低至0.5折送iPhone12是真的吗?云服务器双11优惠活动

    百度智能云双11特惠云服务器低至0.5折,并赠送iPhone12,这是目前获取高性能计算资源与硬件奖励的最优解,建议立即通过官方渠道锁定名额,在云计算市场竞争日益激烈的当下,寻找高性价比的服务器资源已成为企业IT决策者和开发者关注的焦点,2026年的双11大促不仅仅是价格的博弈,更是云服务生态的一次深度整合,百……

    2026年6月22日
    1900
  • 国外业务中台服务代金券怎么领取?获取方法是什么?

    在全球化商业竞争日益激烈的当下,构建高效、稳定的海外业务中台已成为企业实现跨国运营的核心支撑,为了降低企业在基础设施搭建、API调用及系统集成过程中的初始投入风险,国外业务中台服务代金券作为一种极具战略价值的财务工具,能够有效帮助企业优化现金流结构,并加速技术架构的落地验证,通过科学合理地规划与使用这类代金券……

    2026年2月27日
    12900
  • 00后小俊从小白到建站高手是怎么炼成的?那些站长们已经或正在经历的事情…

    00后小俊从建站小白蜕变为高手的核心路径在于:摒弃盲目追求炫酷特效,深耕WordPress等成熟CMS系统的底层逻辑,并通过持续的内容更新与SEO基础优化实现流量变现,00后新手站长建站初期常见误区与避坑指南小俊刚入行时,和许多新手一样,被网络上各种“三天建成高端网站”的广告迷惑,他最初认为建站就是找个模板套上……

    2026年6月29日
    1800
  • SUSE Linux如何安装JDK?jdk8和jdk11区别

    在SUSE Linux上安装JDK,首选OpenJDK 17或21版本,通过YAST或Zypper包管理器可快速完成配置,确保环境变量正确指向JAVA_HOME即可满足绝大多数企业级应用需求,SUSE Linux环境下JDK选型的核心逻辑选择正确的Java开发工具包(JDK)是构建稳定应用的第一步,在SUSE……

    2026年7月8日
    10200
  • 配一台服务器到底要多少钱啊,预算多少才合适?

    配一台服务器到底多少钱?直接说结论:月付几百到几千元是主流,但具体要看配置和用途,如果你只是个人跑个轻量应用,几百元足够;如果是企业级应用,预算可能上万,影响服务器价格的核心因素硬件配置服务器价格首先取决于硬件,入门级配置如单核CPU、1GB内存、20GB SSD,月付仅需几十元,而高性能双路至强、64GB内存……

    2026年8月22日
    100
  • Corehosting荷兰VPS怎么样?便宜的国外VPS推荐哪个

    Corehosting荷兰VPS以€6/半年的极低价格,提供1GB内存和10Gbps大带宽,是目前市场上性价比极高的轻量级海外服务器选择,尤其适合预算有限的开发者部署低功耗应用,Corehosting荷兰VPS性价比深度解析在目前的海外VPS市场中,月均1欧元的成本几乎触及了商业运营的底线,Corehostin……

    2026年7月13日
    14600
  • linux命令pr怎么用?pr命令参数详解

    pr 是 Linux/Unix 系统中一个非常实用的命令行工具,主要用于将文本文件转换为适合打印的格式,它的核心功能包括:添加页眉和页脚(如文件名、日期、时间、页码),将单列文本转换为多列布局(类似报纸排版),控制页边距、行号、分页符等,📌 基本语法pr [选项] [文件…]如果不指定文件,pr 会从标准输……

    2026年7月10日
    7300
  • 4核8G云服务器能支持多少人同时在线,够用吗

    4核8G云服务器同时在线人数通常在500-1500之间,具体取决于业务类型、软件优化和带宽配置,静态类网站可达更高,动态计算密集型应用则需适当降低预期,决定4核8G服务器同时在线人数的核心因素在估算并发能力前,先要理解资源消耗的底层逻辑,4核CPU和8G内存是固定的硬件天花板,但实际能承载的人数却千差万别,原因……

    2026年7月25日
    4100
  • 七牛云短视频SDK好用吗?七牛云短视频SDK价格及Demo体验

    七牛云短视频 SDK 在移动端开发中表现稳定,尤其适合需要快速集成高清播放、智能剪辑及云存储能力的中小团队,其按量付费模式能有效控制初期成本,在移动互联网流量红利见顶的当下,视频内容已成为用户获取信息的首选方式,对于开发者而言,从零搭建一套支持高并发、低延迟的视频处理系统,不仅技术门槛极高,维护成本也难以承受……

    2026年6月25日
    3000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注