Question

Wordpress Unable to Connect to remote DB over Private Networking

  • Posted June 10, 2014

I have wordpress setup on two separate droplets. Files are on one droplet and DB is on a separate droplet. wp-config.php was edited with DB_HOST reflecting the private IP of the DB server.

This has suddenly stopped working - site is give me a “error connecting” message. However, if I use the public IP of the DB server, then the site works.

Anything I’m missing?

Subscribe
Share

Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Found a fix/hack that seems to work for now: I backed up sql, deleted the mysql DBs that weren’t connecting through private IP, recreated DB and restored data and it magically works. Any idea what the problem is?

Follow up - I don’t know if it was the repeated restarting of mysql or what it was, but I can now connect to 2/3 of my databases using both private and public IPs. However, I get this error when I try to access the 3rd remote DB using the exact same file:

Could not select database: Access denied for user

Thanks for helping with this.

pinging works.

I was also able to manually connect using the mysql command, both to the public and private IP.

ifconfig shows both eth0 and eth1

Private IP just won’t work if I try to access from PHP files or wordpress.

Can you ping the private IP address from the other droplet? How about connecting to the remote database manually:

<pre> mysql -u wordpressuser -h database_server_IP -p </pre>

This article should help point you in the right direction:

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql

If both of those fail, run ifconfig on the database server. You should see entries for both “eth0” and “eth1” If you don’t then the private network isn’t up at all. In that case, try running:

<pre> ifup eth1 </pre>