Enable the server to communicate via TCP/IP¶
Most of the Linux distributions do not enable by default to accept TCP/IP connections from outside in their MySQL or Percona Server packages.
You can check it with
netstat on a shell:
$ netstat -lnp | grep mysql tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld unix 2 [ ACC ] STREAM LISTENING 8101 2480/mysqld /tmp/mysql.sock
You should check two things:
there is a line starting with
tcp(the server is indeed accepting TCP connections)
the first address (
0.0.0.0:3306in this example) is different from
127.0.0.1:3306(the bind address is not localhost’s).
In the first case, the first place to look is the
my.cnf file. If you
find the option
skip-networking, comment it out or just delete it. Also
check that if the variable
bind_address is set, then it should not be
set to localhost’s but to the host’s IP. Then restart the MySQL server and
check it again with
netstat. If the changes had no effect, then
you should look at your distribution’s startup scripts (like
You should comment out flags like
--skip-networking and/or change
After you get the server listening to remote TCP connections properly, the
last thing to do is checking that the port (3306 by default) is indeed
open. Check your firewall configurations (
iptables -L) and that you are
allowing remote hosts on that port (in
And we’re done! We have a MySQL server running which is able to communicate with the world through TCP/IP.
For free technical help, visit the Percona Community Forum.
To report bugs or submit feature requests, open a JIRA ticket.
For paid support and managed or consulting services , contact Percona Sales.