返回

快速搞定“ORA-12541 TNS无监听程序 - MySQL”错误的实用指南

后端

ORA-12541 TNS 无监听程序:深入故障排除指南

如果你正在与 Oracle 数据库打交道,你可能偶尔会遇到“ORA-12541 TNS 无监听程序”错误。这个恼人的错误表明你无法连接到数据库,因为监听程序要么没有启动,要么不可访问。

不要惊慌,这个错误很常见,你可以按照以下分步指南轻松解决它:

检查监听程序是否已启动

首先,让我们检查监听程序是否正在运行。在命令行中,键入以下命令:

lsnrctl status

如果监听程序已启动,你会看到类似这样的输出:

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-JUL-2023 15:06:39

Copyright (c) 1991, 2022, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

但是,如果监听程序未启动,你会收到以下错误消息:

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-JUL-2023 15:06:39

Copyright (c) 1991, 2022, Oracle.  All rights reserved.

TNS-12541: TNS:no listener

验证配置文件

接下来,让我们检查监听程序的配置文件是否正确。此配置文件通常位于 /etc/oracle/listener.ora。确保以下内容正确无误:

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(PROGRAM = extproc)
)
)
)

检查网络连接

现在,让我们确保你可以从客户端连接到数据库服务器。使用 ping 命令进行测试。在命令行中,键入以下命令:

ping <database server IP address>

如果可以连接,你会看到类似这样的输出:

PING <database server IP address> (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.075 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.073 ms

但是,如果无法连接,你会收到以下错误消息:

PING <database server IP address> (192.168.1.100) 56(84) bytes of data.
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2

重启数据库实例

如果上述步骤均未解决问题,你可以尝试重新启动数据库实例。在命令行中,键入以下命令:

sqlplus / as sysdba
shutdown immediate
startup

寻求专业帮助

如果你已经尝试了上述所有步骤但仍然无法解决错误,请联系 Oracle 支持人员。他们可以帮助你深入诊断问题并找到一个行之有效的解决方案。

结论

解决“ORA-12541 TNS 无监听程序”错误需要耐心和对各个潜在原因的理解。通过遵循本指南中的分步说明,你可以自信地诊断并解决问题,从而恢复与 Oracle 数据库的连接。

常见问题解答

  • 为什么会出现“ORA-12541 TNS 无监听程序”错误?

此错误表示监听程序没有启动或无法访问,导致无法与数据库建立连接。

  • 如何检查监听程序是否已启动?

在命令行中运行 lsnrctl status 命令。

  • 如何验证配置文件?

检查文件 /etc/oracle/listener.ora,确保 LISTENERSID_LIST_LISTENER 部分正确配置。

  • 如何检查网络连接?

使用 ping 命令测试从客户端到数据库服务器的连接性。

  • 如果我无法解决错误,该怎么办?

请联系 Oracle 支持人员以获得进一步的故障排除和解决问题的帮助。