我正在使用Laravel 4.2框架开展项目。我想执行命令php artisan migrate
,但是当我运行此命令时,它显示错误:
[PDOException]
SQLSTATE [42000]:语法错误或访问冲突:1142 CREATE命令被拒绝给用户' abc' @' 10.1.1.27'表格'迁移'
我认为我已将项目文件和数据库放在不同的服务器上,这就是我收到此错误的原因。
数据库服务器:10.1.1.56
项目服务器:10.1.1.27(localhost)
答案 0 :(得分:7)
此错误表示远程MySQL数据库未配置为允许用户import React from 'react';
// import {connect} from 'react-redux'
export class Home extends React.Component {
render(){
console.log(this.props)
return (
<div>Working</div>
)
}
}
import * as React from 'react'
import * as ReactDOM from 'react-dom';
import {Home} from './Components/Home.component'
class App extends React.Component<any,any>{
render(){
return(
<Home value="abc" />
)
}
}
ReactDOM.render( <App />, window.document.getElementById("app"))
从IP地址 10.1.1.27 执行某些操作。在许多情况下,MySQL用户被设置为允许从相同的主机访问数据库服务器,但我们需要显式GRANT
access用于从远程主机连接到数据库的客户端。
我们可以使用以下命令向远程主机授予用户abc
访问权限。我们必须以能够向其他用户(例如数据库的 root 用户)授予权限的用户身份运行这些命令:
abc
将GRANT ALL PRIVILEGES ON database.* TO 'abc'@'%';
FLUSH PRIVILEGES;
替换为在 .env 或 config / database.php 中配置的应用程序数据库的名称。 database
中的通配符'%'
表示我们要从任何 IP地址向该用户授予权限。如果我们不想允许用户从任何 IP地址进行访问,我们可以通过将通配符替换为允许的地址来限制对特定IP地址的访问( 10.1.1.27 在这种情况下)。
根据项目的需要,我们可能不需要为用户提供数据库的所有权限。请参阅documentation以获取我们可以分配的可用权限列表。
答案 1 :(得分:0)
1142 CREATE command denied to user 'abc'@'10.1.1.27' for table 'migrations'
上述命令仅表示用户对连接的数据库没有CREATE
权限。首先,您必须在数据库上为该用户授予权限,然后运行迁移。
说明:当您运行migrate
时,会在数据库中创建一个名为migration
的表,该表保持迁移状态,并且您不需要&# 39; r拥有CREATE
权限,这就是显示错误的原因。