Question
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/tcp
andsudo 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
/etc/mysql/my.cnf
file withbind-address
? - When creating the user on Droplet one through PMA, did I use the right settings?
- Any other setting that 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.
×
I just remembered that I also ran
mysql_secure_installation
. If I remember correctly that disables remote access, not sure.