Connect one LAMP app to mysql database of another LAMP app
I have 2 droplets, both with a LAMP stack. Both also have PHPMyAdmin installed, run a PHP application, and have a self-signed SSH certificate that auto redirects to https.
What I would like to do is connect to the MySQL database that’s on Droplet 1 from the app on Droplet 2. I know you can do this by running a mysql server Droplet 1, but both need to run a full PHP app in this case.
Here is what I’ve already done and tried:
- Enabled private networking on both droplets (https://www.digitalocean.com/community/tutorials/how-to-enable-digitalocean-private-networking-on-existing-droplets)
- On Droplet 1 I’ve added port 3306 to the firewall with
sudo ufw allow 3306/tcpand
sudo service ufw restart
- Both have the same firewall settings applied that are configured in the DO interface. I’ve added ‘All TCP’, 'All ports’ from source 'Droplet 2’
- Outbound rules on the firewall settings are 'ICMP’, 'All TCP’ and 'All UDP’ from 'All ports’ and 'All IPv4’ and 'All IPv6’
- I’ve created a MySQL user through PMA on Droplet 1 with hostname %
My PHP app connection settings
$db['remotedb’] = array(
'dsn’ => “,
'hostname’ => 'PRIVATE IP OF DROPLET HERE’, // in the format xx.xx.xx.xx so not with https:// in front of it
'port’ => 3306,
'username’ => 'user’,
'password’ => 'password’,
'database’ => 'database’,
'dbdriver’ => 'mysqli’,
'dbprefix’ => ”,
'pconnect’ => FALSE,
'dbdebug’ => FALSE,
'cacheon’ => FALSE,
'cachedir’ => “,
'charset’ => 'utf8’,
'dbcollat’ => 'utf8generalci’,
'swappre’ => ”,
'encrypt’ => FALSE,
'compress’ => FALSE,
'stricton’ => FALSE,
'failover’ => array(),
'savequeries’ => TRUE
Currently the app op Droplet 2 can not connect to the database that runs on Droplet 1. What am I missing?
A few questions:
- Do I need to do anything in the
- When creating the user on Droplet one through PMA, did I use the right settings?
- Any other setting that I’m missing?