Enabling MySQL Remote Access - MySQL connection only works from local machine

If the MySQL connection is only working locally, make sure the user has been granted privileges to be able to connection remotely to MySQL. The following is an example SQL statement to grant the user remote access:

GRANT ALL PRIVILEGES ON [database_name].* to '[user]'@'[hostname]' identified by '[password]'

Replace the database_name, user, hostname, and password values with their appropriate replacements.

If the connection to MySQL still does not work, make sure that networking is enabled on the MySQL database. For newer versions of MySQL, this can be achieved using the MySQL Server Instance Configuration Tool. One of the options on the tool is to enable TCP/IP networking. The tool will also allow you to specify a port (the default is 3306) and create a firewall exception.

On older versions of MySQL, you may have to edit the MySQL configuration manually. On Windows machines, this would typically be the my.ini file located in your MySQL installation directory. On Linux / Unix, the global configuration file would be the my.cnf file located in the /etc directory. The my.cnf file in the MySQL data directory can be used for specific server configuration, and the my.cnf file in the user home directory can be used for user specific configuration.

To enable networking manually, make sure the skip-networking line is commented out, and the following line is contained in the file with the SERVER-IP replaced with the actual ip address of the server:

bind-address=SERVER-IP

Also, make sure the port MySQL is listening on is open to ip addresses from which you will be connecting to the server, or to all ip addresses if that is acceptable to your security policy.