Home / Troubleshoot / Oracle ORA-12541
Oracle · ORA-12541

ORA-12541: TNS No Listener — How to Fix It

ORA-12541 ("TNS:no listener") means the client reached the host but nothing was listening on the port it tried. It's almost always the listener being down, or the wrong host/port. Here's the order.

Step 1 — Is the listener running?

On the database server:

lsnrctl status

If it errors or shows no listener, start it:

lsnrctl start

Step 2 — Right host and port?

The client's connect descriptor (tnsnames.ora or the connection string) must target the host and port the listener actually listens on. Compare the HOST/PORT in the client against the listener's endpoints in lsnrctl status (default 1521). A typo or an old VIP/hostname is a common cause.

Step 3 — Firewall / network

Even with the listener up, a firewall blocking the listener port produces ORA-12541 from the client. Confirm the port is open end to end:

telnet <db-host> 1521

Step 4 — Is the database registered with the listener?

If the listener is up but the service isn't registered, connections to that service fail. Check:

lsnrctl services

If the service is missing, register it from the instance (ALTER SYSTEM REGISTER;) and confirm local_listener points at the right host/port. Then retry the connection.

How Tech Matrix solves this in ~60 seconds

ORA-12541 has a few distinct causes — listener down, wrong host/port, firewall, or unregistered service — that all look identical to the client. Tech Matrix checks the listener state, endpoints, firewall path and service registration, tells you which it is, and gives the fix for your Oracle version, with your approval.

Frequently asked questions

What does ORA-12541 mean?

TNS:no listener — the client reached the host but nothing was listening on the port it connected to. Usually the listener is down or the client is using the wrong host/port.

How do I fix ORA-12541?

On the DB server run 'lsnrctl status' and 'lsnrctl start' if it's down, confirm the client's host/port match the listener (default 1521), open the firewall, and ensure the service is registered ('lsnrctl services').

How do I check if the Oracle listener is running?

Run 'lsnrctl status' on the database server. It shows the listener state and the endpoints (host/port) it's listening on.