Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载数据本地内嵌mysql服务器php Ubuntu_Php_Mysql_Ubuntu_Load Data Infile - Fatal编程技术网

加载数据本地内嵌mysql服务器php Ubuntu

加载数据本地内嵌mysql服务器php Ubuntu,php,mysql,ubuntu,load-data-infile,Php,Mysql,Ubuntu,Load Data Infile,我之所以发布这个决议,是因为它让我疯狂了好几天——结果是AppArmor设置。这个问题终于解决了: 我看到这是标记为重复,但所有其他建议似乎指向编辑my.cnf,这对我不起作用 我无法使加载数据本地填充工作。我的MySQL服务器版本是5.5.41,我的Ubuntu版本是14.04.2。mymy.cnf在mysql、mysqld和client下都有“localinfle”。下面我将在Stackoverflow上的每一篇文章的连接字符串中指定标志128。当我在客户机上运行下面的代码时,它工作得非常

我之所以发布这个决议,是因为它让我疯狂了好几天——结果是AppArmor设置。这个问题终于解决了:

我看到这是标记为重复,但所有其他建议似乎指向编辑my.cnf,这对我不起作用

我无法使加载数据本地填充工作。我的MySQL服务器版本是5.5.41,我的Ubuntu版本是14.04.2。mymy.cnf在mysql、mysqld和client下都有“localinfle”。下面我将在Stackoverflow上的每一篇文章的连接字符串中指定标志128。当我在客户机上运行下面的代码时,它工作得非常好,但现在它位于服务器上,它不断抛出

“此MySQL版本不允许使用此命令

编辑,从命令行运行此命令成功:

mysql> LOAD DATA LOCAL INFILE '/home/aa/ER.csv'
    ->      INTO TABLE ER_import
    ->      FIELDS TERMINATED BY ','
    ->      LINES TERMINATED BY '\r\n'
    ->      IGNORE 1 LINES
    ->     (Paid_Amount,
    -> Pro_Number,
    -> Invoice,
    -> Ship_Date,
    -> BL,
    -> Carrier_Name,
    -> Check_Number,
    -> Paid_Date,
    -> Shipper_City,
    -> Shipper_State,
    -> Shipper_Name_1,
    -> Recipient_City,
    -> Recipient_State,
    -> Recipient_Name_1,
    -> Batch_Number,
    -> Actual_Weight,
    -> Billed_Amount
    -> );
Query OK, 8585 rows affected, 4 warnings (0.21 sec)
Records: 8585  Deleted: 0  Skipped: 0  Warnings: 4
但是,这会不断重新调整未找到的文件:“文件'/home/aa/ER.csv'未找到(错误代码:13)”文件确实存在并且权限正确:

$delete = "DELETE FROM ER_import";

 if (!mysqli_query($conn,$delete))
   {
   echo("Error description: " . mysqli_error($conn));
   }

$query = <<<eof
    LOAD DATA INFILE '/home/aa/ER.csv'
     INTO TABLE ER_import
     FIELDS TERMINATED BY ','
     LINES TERMINATED BY '\r\n'
     IGNORE 1 LINES
    (Paid_Amount,
Pro_Number,
Invoice,
Ship_Date,
BL,
Carrier_Name,
Check_Number,
Paid_Date,
Shipper_City,
Shipper_State,
Shipper_Name_1,
Recipient_City,
Recipient_State,
Recipient_Name_1,
Batch_Number,
Actual_Weight,
Billed_Amount
);
eof;


if($results = mysqli_query($conn, $query)){
  echo $file. " has been imported!";
} else die(mysqli_error($conn));
$delete=“从ER_导入中删除”;
如果(!mysqli_查询($conn,$delete))
{
echo(“错误描述:.mysqli_错误($conn));
}
$query=试试这个方法

$query = <<<eof
    LOAD DATA LOCAL INFILE DIR_FILE
     INTO TABLE ER_import
     FIELDS TERMINATED BY ','
     LINES TERMINATED BY '\r\n'
     IGNORE 1 LINES
eof;

$query = str_replace('DIR_FILE',$dir.$file,$query);

$query=在
LOAD DATA LOCAL INFILE
中,对
LOCAL
的含义有一个非直观的扭曲。当您加载的文件不是服务器本地文件时,您只需要使用
LOCAL
LOCAL
告诉MySQL客户端拾取一个本地文件并将其放置在服务器上的临时目录中


在服务器上运行php脚本时,请尝试从命令中删除单词
LOCAL

几年前我也遇到过同样的问题

客户端和服务器都需要启用本地加密

我建议您在尝试使用PHP之前,首先尝试从命令行界面运行
LOAD DATA LOCAL infle
。要确保来自客户端的连接启用LOCAL infle,请运行以下命令:

mysql--local infle=1-h REPLACE\u HOST\u IP-u username-p


祝你好运!

另请参阅。有趣的是,我遇到了这样的错误:主机“hostname”不允许连接到此MySQL服务器。好吧,让我们先解决这个问题。我们需要确保服务器接受远程MySQL连接。为此,请相应地修改my.cnf文件。还可以授予访问用户
用户名
的权限,以便进行远程连接:
将*.*上的所有权限授予“用户”@“%”
我已经过了这个关——你在我的编辑中看到了任何明显的东西吗?