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


81

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

ERROR:
ORA-12541: TNS:no listener

我的数据库是Oracle 10gR2

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


4
应该是一个serverfault.com / dba.stackexchange.com问题
猛禽

但是,当我使用其他服务器连接到数据库时,您的意思是说当您尝试从服务器连接同一数据库时?
雅各布2012年

我的意思是我在sqldeveloper上由sqlplus或sql developer由客户端连接到数据库服务器错误“执行请求的操作时遇到错误:网络适配器无法建立连接供应商代码20”
aliasosx 2012年

因此,您能够使用sqlplus连接到数据库,但不能从SQL Developer连接到数据库?
雅各布2012年

您已验证侦听器位于“ server1”框中,验证了其端口号,并检查了另一台服务器上的TNSNames /连接字符串,使其与ip / hostname和端口匹配?
DazzaL 2012年

Answers:


86

您需要将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(CentOs):

    sudo systemctl restart oracle-xe
    

在此处输入图片说明


4
终于,经过一天的艰辛,它成功了!
akki 2016年

2
谢谢!这解决了我的问题。DB Server中的侦听器设置为localhost。把计算机的主机名解决我的问题。
doliharahap '16

3
嗨,我的问题是我在服务中找不到oracleservice,我该怎么办?谢谢你
martinwang1985

3
我的管理员文件夹没有lister.ora文件,我的服务没有列出“ Oracle [anything]”
Christine

1
Oracle 12c示例:ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1; export ORACLE_HOME
Ivan Chau,

11

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


我用你的方式解决我的问题。更新操作系统后出现我的问题。
Istiaque Hossain '18 -10-10

如果此处的答案无效,因为此问题已关闭。这里就是我的回答:1.按Cmd与管理和运行tnsping YourOracleSID,如果出现错误,在这里看到的解决办法,比如尝试LSNRCTL.EXE startsort.veritas.com/public/documents/ccser/5.2/windowsandunix/...
宇阳建

3

检查您的TNS名称,该名称在ALIAS的左侧不能有空格

最好的祝福


2

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

31
这对不知道如何执行建议操作的任何人都没有帮助。
克里斯汀
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.