【问题标题】:Oracle client ORA-12541: TNS:no listener [closed]Oracle 客户端 ORA-12541:TNS:没有侦听器 [关闭]
【发布时间】:2025-11-28 17:30:01
【问题描述】:

我是 Oracle 数据库的新手,但我有一个问题。 在我的数据库服务器 (server1) 上,侦听器和数据库实例运行正常,我可以使用 sqlplus 连接到该数据库。 当我使用其他服务器连接到数据库时,我检查了 TNS 配置,它是正确的,但系统说:

ERROR:
ORA-12541: TNS:no listener

我的数据库是 Oracle 10gR2

那么我该如何解决这个问题呢?

【问题讨论】:

  • 应该是 serverfault.com / dba.stackexchange.com 问题
  • 但是当我使用其他服务器连接到数据库时 你的意思是说当你尝试从服务器连接同一个数据库时?
  • 我的意思是我通过 sqlplus 或 sql developer 在 Sqldeveloper 上通过客户端连接到数据库服务器错误“执行请求的操作时遇到错误:网络适配器无法建立连接供应商代码 20”
  • 所以您可以使用 sqlplus 连接数据库,但不能使用 SQL Developer 连接数据库?
  • 您已确认侦听器已在“server1”框上运行,验证了其端口号,并检查了另一台服务器上的 TNSNames/连接字符串是否与 ip/主机名和端口匹配?

标签: oracle listener


【解决方案1】:

你需要设置oracle监听所有ip地址(默认只监听localhost连接)

第 1 步 - 编辑 listener.ora

此文件位于:

  • Windows:%ORACLE_HOME%\network\admin\listener.ora
  • Linux:$ORACLE_HOME/network/admin/listener.ora

替换 localhost 0.0.0.0

# ...

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    )
  )

# ...

第 2 步 - 重新启动 Oracle 服务

  • Windows:WinKey + r

    services.msc
    
  • Linux (CentO):

    sudo systemctl restart oracle-xe
    

【讨论】:

  • 折腾一天终于成功了!
  • 谢谢!这解决了我的问题。 DB Server 中的 Listener 设置为 localhost。把计算机的主机名解决我的问题。
  • 嗨,我的问题是我在服务中找不到 oracleservice,我该怎么办?谢谢你
  • 我的管理文件夹没有 lister.ora 文件,并且我的服务没有列出“Oracle [anything]”
  • Oracle 12c 示例:ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME
【解决方案2】:

我也遇到了同样的问题,但我通过在控制面板 -> 管理工具 -> 服务 ->oracle TNS 监听器启动中启动 TNS 监听器解决了这个问题。我正在使用 Windows Xp 和 Toad 连接到 Oracle。

【讨论】:

  • 我用你的方式解决了我的问题。更新操作系统后我的问题出现了。
  • 如果这里的答案不起作用,因为此问题已关闭。 这是我的答案: 1. 用 cmd 和 admin 运行 tnsping YourOracleSID,如果有错误,请看这里的解决方案,例如尝试LSNRCTL.EXE start:sort.veritas.com/public/documents/ccser/5.2/windowsandunix/…
【解决方案3】:

检查您的 TNS 名称,别名的左侧不能有空格

最好的问候

【讨论】:

    【解决方案4】:

    根据oracle在线文档

    ORA-12541:TNS:没有监听器

    Cause: The connection request could not be completed because the listener is not running.
    
    Action: Ensure that the supplied destination address matches one of the addresses used by 
    the listener - compare the TNSNAMES.ORA entry with the appropriate LISTENER.ORA file (or  
    TNSNAV.ORA if the connection is to go by way of an Interchange). Start the listener on 
    the remote machine.
    

    【讨论】:

    • 这对不知道如何执行建议操作的任何人都没有帮助。
    最近更新 更多