我正在使用Laravel 4.2框架开发一个项目.我想执行命令PHP artisan migrate但是当我运行此命令时它显示错误:
[PDOException]
sqlSTATE[42000]: Syntax error or access violation: 1142 CREATE command denied to user ‘abc’@’10.1.1.27’ for table ‘migrations’
我想我已将项目文件和数据库放在不同的服务器上,这就是我收到此错误的原因.
数据库服务器:10.1.1.56
项目服务器:10.1.1.27(localhost)
此错误表示远程
MySQL数据库未配置为允许用户abc从IP地址10.1.1.27执行某些操作.在许多情况下,MysqL用户被设置为允许从与数据库服务器相同的主机进行访问,但是对于从远程主机连接到数据库的客户端,我们需要明确
GRANT
access.
我们可以使用以下命令向远程主机授予用户abc访问权限.我们必须以能够向其他用户(例如数据库的root用户)授予权限的用户身份运行这些命令:
GRANT ALL PRIVILEGES ON database.* TO 'abc'@'%'; FLUSH PRIVILEGES;
将数据库替换为.env或config / database.PHP中配置的应用程序数据库的名称. ‘username’@’%’中的通配符’%’表示我们要从任何IP地址为该用户授予权限.如果我们不希望允许用户从任何IP地址进行访问,我们可以通过将通配符替换为允许的地址(在本例中为10.1.1.27)来限制对特定IP地址的访问.
根据项目的需要,我们可能不需要为用户提供数据库的所有权限.有关我们可以分配的可用权限的列表,请参阅documentation.