Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel migrate command is not working for remote database

I am working on a project using the Laravel 4.2 framework. I want to execute the command php artisan migrate but when I run this command it shows an error:

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1142 CREATE command denied to user 'abc'@'10.1.1.27' for table 'migrations'

I think I have placed the project files and the database on different servers, so that's why am I getting this error.

Database server: 10.1.1.56

Project server: 10.1.1.27 (localhost)

like image 959
Katty Avatar asked Nov 17 '17 10:11

Katty


1 Answers

This error indicates that the remote MySQL database isn't configured to allow certain operations executed by the user abc from the IP address 10.1.1.27. In many cases, MySQL users are set up to allow access from the the same host as the database server, but we need to explicitly GRANT access for clients connecting to the database from a remote host.

We can use the following commands to grant the user abc access from remote hosts. We must run these commands as a user that has the ability to grant privileges to other users (such as the database's root user):

GRANT ALL PRIVILEGES ON database.* TO 'abc'@'%';
FLUSH PRIVILEGES;

Replace database with the name of the application's database configured in .env or config/database.php. The wildcard '%' in 'username'@'%' indicates that we want to give permissions to that user from any IP address. If we don't want to allow the user access from any IP address, we can limit access to specific IP addresses by replacing the wildcard with the address to allow (10.1.1.27 in this case).

Depending on the needs of the project, we may not need to give a user all privileges to a database. See the documentation for a list of available privileges that we can assign.

like image 169
Cy Rossignol Avatar answered Oct 23 '22 18:10

Cy Rossignol