January 21, 2023 By Matthew Rathbone *

If you’re trying to connect to a MySQL server on localhost and receiving an error message indicating that the connection cannot be established, there are a few potential causes and solutions to consider. In this article, we’ll provide a step-by-step guide to troubleshooting this issue.

A Database Manager That Is Modern, Fast, & Easy To Use

Tried a few tools. Beekeeper was the only one that I found that felt right. Most had a very 1990's feel to them - Allan

I built Beekeeper Studio because, like Allan, I wanted something more intuitive and modern than all the existing clunky apps I could find. My customers agree - they love using Beekeeper and they tell me every day! Give it a try, I bet you'll like it too.

Beekeeper's Linux version is 100% full-featured, no cut corners, no feature compromises.

Verify the server is running

First, it’s important to verify that the MySQL server is actually running on your local machine. You can do this by looking for the mysqld process.

Here’s how to do this on Linux

ps aux | grep mysqld

If the server is not running, you can try starting it manually by using the mysqld command. In the terminal window, type the following command:


This should start the MySQL server process. You can then try connecting to the server again using the mysql command-line client, as described above.

Mysqld is not listening on localhost

If the server is running but you’re still unable to connect, it’s possible that the server is not listening on the localhost interface. By default, the MySQL server listens on the localhost interface, but it’s possible that this has been changed in the server’s configuration file.

To check this, look for the bind-address option in the my.cnf configuration file. This file is typically located in the /etc directory on Linux systems, or in the C:\ProgramData\MySQL\MySQL Server X.X directory on Windows systems (where X.X is the version of MySQL you’re using).

Open the my.cnf file in a text editor, and look for the bind-address option. This option specifies the interface that the MySQL server listens on. By default, it should be set to, which indicates that the server listens on the localhost interface.

A value of indicates it is listening on all ports (this should work too)

Fixing my.cnf

If this option is set to a different value, you’ll either need to change it to in order to allow connections on the localhost interface, or connect from a different machine.

Once you’ve made this change, save the my.cnf file and restart the MySQL server using the mysqld command, as described above. Then try connecting to the server again using the mysql command-line client.

Check firewalls

If you’re still unable to connect to the MySQL server on localhost, there are a few other potential causes to consider. One common issue is a firewall blocking access to the MySQL port. By default, the MySQL server listens on port 3306, so you’ll need to make sure that this port is not blocked by your firewall.

To check if the firewall is blocking access to the MySQL port on Linux, you can use the netstat command to see which network ports are currently open on your system. In the terminal window, type the following command:

netstat -an | grep 3306


Hopefully one of these solutions has helped to solve the dreaded 2003 MySQL connection error.