MySQL Not Listening On A Public IP

By default, MySQL (on Debian) doesn’t listen on the public interface:

#netstat -l
tcp        0      0 127.0.0.1:3306          0.0.0.0:*
LISTEN     1768/mysqld

In /etc/mysql/my.cnf, comment out the bind line:

#bind-address           = 127.0.0.1

And restart MySQL. Then it will listen on the public interface, and you should be able to connect.

#netstat -l
tcp        0      0 0.0.0.0:3306            0.0.0.0:*
LISTEN     14134/mysqld