Oracle客户端ORA-12541:TNS无侦听器

101

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

ERROR:
ORA-12541: TNS:no listener

我的数据库是Oracle 10gR2

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


5
应该是一个针对serverfault.com或dba.stackexchange.com的问题。 - Raptor
1
我的意思是,我通过sqlplus或Sqldeveloper上的sql developer客户端连接到数据库服务器时出现错误:“执行请求的操作时遇到错误:网络适配器无法建立连接,供应商代码20”。 - aliasosx
1
你能够使用sqlplus连接到数据库,但无法从SQL Developer连接吗? - Jacob
1
每个客户端都无法连接到数据库服务器,但我检查了防火墙已经禁用。 - aliasosx
1
当我在sqlldr中漏掉端口号时,我遇到了相同的错误。 - vigneshwaran m
显示剩余5条评论
4个回答

120

你需要设置 Oracle 监听所有 IP 地址(默认情况下,它仅监听本地连接)。

步骤 1 - 编辑 listener.ora

该文件位于:

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

0.0.0.0 替换 localhost

# ...

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

# ...

步骤二 - 重新启动 Oracle 服务

  • Windows: WinKey + r

services.msc
  • Linux (CentOS):

  • sudo systemctl restart oracle-xe
    

    这里输入图片描述


    5
    终于经过一天的努力,它能够正常工作了! - akki
    3
    谢谢!这解决了我的问题。在数据库服务器中,监听器设置为本地主机。将计算机的主机名放入解决了我的问题。 - doliharahap
    4
    你好,我的问题是我在服务中找不到oracleservice,我该怎么办?谢谢。 - martinwang1985
    4
    我的管理文件夹中没有lister.ora文件,我的服务中没有列出“Oracle [任何内容]”。 - Christine
    2
    @MichaelTolsma 拿我的作为例子,它是这样的:D:\app\administrator\product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora - runzhi xiao
    显示剩余5条评论

    15

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


    2
    我通过您的方法解决了我的问题。我的问题是在更新操作系统后出现的。 - Istiaque Hossain
    2
    如果这里的答案不起作用,因为这个问题已经关闭了。这是我的答案:1. 使用管理员权限打开命令提示符并运行 tnsping YourOracleSID,如果出现错误,请查看此处的解决方案,例如尝试 LSNRCTL.EXE start:https://sort.veritas.com/public/documents/ccser/5.2/windowsandunix/productguides/html/ccer_install/ch03s05.htm - yu yang Jian

    5

    请检查您的TNS名称,别名左侧不得有空格。

    最好的问候


    -1
    根据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.
    

    52
    如果不知道如何执行建议的动作,这对任何人都没有帮助。 - Christine

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接