Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR 2003 (HY000): Can't connect to MySQL server (111)

This question is related to the following questions:

  • Can't connect to MySQL server error 111
  • Trying to connect to remote MySQL host (error 2003)

I am configuring a new MySQL (5.1) server on my local machine. I need to provide remote access to the database. I did the following steps:

  1. Comment bind-address in my.cnf:

    # bind-address      = 192.168.1.3 
  2. Grant privileges:

    GRANT ALL PRIVILEGES ON *.* TO 'nickruiz'@'%' IDENTIFIED BY PASSWORD 'xxxx'; 
  3. Set port forwarding on router (TCP and UDP, port 3306, 192.168.1.3)
  4. Configure iptables for firewall

    sudo iptables -I INPUT -p udp --dport 3306 -j ACCEPT  sudo iptables -I INPUT -p tcp --dport 3306 --syn -j ACCEPT  sudo iptables-save 
  5. Restart mysql server sudo /etc/init.d/mysql restart

When testing, I get the following:

LAN:

mysql -h 192.168.1.3 -u nickruiz -p Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 95 Server version: 5.1.63-0ubuntu0.11.04.1 (Ubuntu) 

Remote:

mysql -h 1xx.xx.4.136 -u nickruiz -p ERROR 2003 (HY000): Can't connect to MySQL server on '1xx.xx.4.136' (111) 

Clearly there's something wrong that's preventing me from being able to use my global IP address.

Notes:

  • I've tried testing the remote connection on the same machine and also via SSH from a remote machine.
  • I'm not sure if my ISP has given me a static IP.

Any ideas?

Update: telnet doesn't seem to be working.

telnet 192.168.1.3 3306 Trying 192.168.1.3... Connected to 192.168.1.3. Escape character is '^]'. E 5.1.63-0ubuntu0.11.04.1,0g8!:@pX;]DyY0#\)SIConnection closed by foreign host. 
like image 482
Nick Ruiz Avatar asked Aug 01 '12 11:08

Nick Ruiz


People also ask

Can not connect to MySQL server 111?

Cause for 'Can't connect to mysql error 111' error Usually, this error occurs when mysqld only listens to the localhost interface. When we try to access mysql server on Linux machine using the public IP address, it often shows error 111. However, when localhost and 127.0. 0.1 is used, it is connecting fine.

How do I fix MySQL error code 2003?

The error (2003) Can't connect to MySQL server on ' server ' (10061) indicates that the network connection has been refused. You should check that there is a MySQL server running, that it has network connections enabled, and that the network port you specified is the one configured on the server.

Can not connect MySQL server on localhost 3306?

You can't connect to mysql server on localhost or ip 127.0. 0.1 (3306) because either the mysql server may not be started or it may not be running, or the network connection to the mysql server is not established, or the mysql server port is different.


2 Answers

Please check your listenning ports with :

netstat -nat |grep :3306 

If it show

 tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN  

Thats is ok for your remote connection.

But in this case i think you have

tcp        0     192.168.1.3:3306            0.0.0.0:*               LISTEN  

Thats is ok for your remote connection. You should also check your firewall (iptables if you centos/redhat)

services iptables stop 

for testing or use :

iptables -A input -p tcp -i eth0 --dport 3306 -m state NEW,ESTABLISHED -j ACCEPT iptables -A output -p tcp -i eth0 --sport 3306 -m state NEW,ESTABLISHED -j ACCEPT 

And another thing to check your grant permission for remote connection :

GRANT ALL ON *.* TO remoteUser@'remoteIpadress' IDENTIFIED BY 'my_password'; 
like image 59
Toi Lee Avatar answered Sep 17 '22 22:09

Toi Lee


errno 111 is ECONNREFUSED, I suppose something is wrong with the router's DNAT.

It is also possible that your ISP is filtering that port.

like image 24
InternetSeriousBusiness Avatar answered Sep 18 '22 22:09

InternetSeriousBusiness