Php 查询中加载数据本地填充错误(1148):此MySQL版本不允许使用该命令

Php 查询中加载数据本地填充错误(1148):此MySQL版本不允许使用该命令,php,mysql,Php,Mysql,我已经看到这个问题被问了十几次,似乎每个人的答案都是一样的:将local infie=1添加到[mysql],[mysqld],并将[client]loose local infie=1添加到my.conf。我已经完成了所有这些,还为我的DB用户添加了文件权限。我仍然会犯同样的错误 我在虚拟Ubuntu 14.04服务器上运行MySQL 5.6。有人能告诉我我错过了什么吗?我已经在运行CentOS和MySQL 5.6的VPS live server上成功地实现了这一点,我不记得为了让它正常工作需

我已经看到这个问题被问了十几次,似乎每个人的答案都是一样的:将local infie=1添加到[mysql],[mysqld],并将[client]loose local infie=1添加到my.conf。我已经完成了所有这些,还为我的DB用户添加了文件权限。我仍然会犯同样的错误

我在虚拟Ubuntu 14.04服务器上运行MySQL 5.6。有人能告诉我我错过了什么吗?我已经在运行CentOS和MySQL 5.6的VPS live server上成功地实现了这一点,我不记得为了让它正常工作需要经历任何困难,尽管我是在一段时间前设置它的

如果有必要,我将尝试通过以下PHP函数进行此导入:

// Connect to a database without using prepared statements (for LOAD FILE feed commands)
// $query = query to execute; $rs = return a result set if true
function db_query_unprepared($query, $rs = false) {
    // Create database connection
    $link = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
    if (!$link) {
        print 'Error connecting to MySQL Server. Errorcode: ' . mysqli_connect_error(); 
    exit; 
    }
    // Execute the query
    if ($rs) {
        $queryresults = array();
        $counter = 0;
        if (mysqli_multi_query($link, $query)) {
            do {
                // Save results to an array
                if ($result = mysqli_store_result($link)) {
                    while ($row = mysqli_fetch_assoc($result)) {
                        $queryresults[$counter][] = $row;
                    }
                    mysqli_free_result($result);
                    $counter++;
                }
            } while (mysqli_next_result($link));
        }
        else {
            print mysqli_error($link);
        }
    }
    else {
        mysqli_multi_query($link, $query);
    }
    mysqli_close($link);

    // Return the results
    if (isset($queryresults)) {
        return $queryresults;
    }
}
这又被称为:

db_query_unprepared('LOAD DATA LOCAL INFILE \'/path/to/mydatafile.csv' . '\' INTO TABLE feed_mydata FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' IGNORE 1 LINES ( field1, field2, field3 )');

在进行.conf更改后是否重新启动了mysql?很抱歉,我是这样做的。LOCAL用于mysql客户端与mysql服务器位于不同机器上的情况。看起来两者都在同一个位置,并且没有使用客户端软件-请尝试删除本地关键字。如果没有本地关键字,则是mysqld服务器进程正在读取文件。MySQL通常以用户MySQL的身份运行,如果该用户不是文件的所有者,并且不是组的成员,则需要将文件的读取权限授予其他用户。。。chmod o+r/path/to/mydatafile.csv。