Connect Laravel Project at local device to a mysql droplet at DigitalOcean

February 23, 2019 299 views
Applications Ubuntu 18.04

Hello,
I am trying to run migrations from my local device to digital oceans DB.
I have sat up a PHPmyAdmin account and an mysql account.

In Laravel settings:
DBCONNECTION=mysql
DB
HOST=[IP address of my phpmyadmin droplet]
DBPORT=3306
DB
DATABASE=[myDBName]
DBUSERNAME=[username]
DB
PASSWORD=[password]

I try to run a migration but its providing me with the following:
Host 'xx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

The user I am using has been fully granted all privileges.

2 Answers
unixynet February 24, 2019
Accepted Answer

You'll need to create a new user in MySQL with the same DB_USERNAME, DB_PASSWORD, and DB_DATABASE combo but with the IP xx.xxx.xxx.xxx. Like this:

grant all on DB_DATABASE.* to 'DB_USERNAME'@'xx.xxx.xxx.xxx' identified by 'DB_PASSWORD';
flush privileges;

NB: "grant all" is lazy so make sure you only grant the privs you'd like to assign.

Cheers

Thanks @unixynet ! It finally worked! It took me a whole day realize that user account is linked to an IP address (in default cases to local host which is 127.0.0.0.1).

I fixed the problem by following your directions exactly, and, by removing special characters in the password in the .env file of laravel.

Have another answer? Share your knowledge.