Wordpress Unable to Connect to remote DB over Private Networking

Posted June 10, 2014 7.5k views
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?

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.

Submit an Answer
4 answers
Can you ping the private IP address from the other droplet? How about connecting to the remote database manually:
mysql -u wordpressuser -h database_server_IP -p
This article should help point you in the right direction: 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:
ifup eth1
by Justin Ellingwood
When your site begins to get more visitors, you may have to think about how to handle the additional traffic. One easy way of doing this is to separate your database operations from your web server so that each can handle its own load. In this guide, we'll demonstrate how to do this for a WordPress site built on Nginx by configuring a remote MySQL database.
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.
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.
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?