MySQL on Raspberry Pi - allow connections from non-localhost

Wed, Dec 6, 2017 One-minute read

If you want to connect to MySQL from any device in your network that isn’t on localhost, then you may encounter an error:

MySQL error: Could not connect to any of the specified hosts

Bear in mind that e.g., a PHP web app or phpmyadmin will continue to work, since (assuming your web server such as Apache is running on the same server as MySQL) they’re technically running on localhost and will be able to connect.

In order to allow this you need to edit your

my.cnf

file, which, in a Raspberry Pi (and I assume therefore Debian) scenario is in a slightly unusual place.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

In here, look for the ‘bind-address’ property.

If you change this to 0.0.0.0 then MySQL will accept TCP connections from anywhere.

Then restart MySQL:

sudo /etc/init.d/mysql restart

(Clearly in this scenario, you then need to ensure your firewall is configured properly to only allow connections from specified places.)