Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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加载数据本地填充找不到文件_Mysql - Fatal编程技术网

mysql加载数据本地填充找不到文件

mysql加载数据本地填充找不到文件,mysql,Mysql,我已检查apparmor并授予该文件的权限: LOAD DATA LOCAL INFILE '/home/toUpload.txt' INTO TABLE table_name (value0,value1,value2); 将返回: ERROR 2 (HY000): File '/home/toUpload.txt' not found (Errcode: 2) 我在aws上运行的Ubuntu 14.04 LTS不完全正确 你是对的;事实证明,不管出于什么善意的原因,这种风格的mysql在

我已检查apparmor并授予该文件的权限:

LOAD DATA LOCAL INFILE '/home/toUpload.txt' INTO TABLE table_name (value0,value1,value2);
将返回:

ERROR 2 (HY000): File '/home/toUpload.txt' not found (Errcode: 2)
我在aws上运行的Ubuntu 14.04 LTS不完全正确

你是对的;事实证明,不管出于什么善意的原因,这种风格的mysql在默认情况下都不允许从本地内嵌加载

mysql> LOAD DATA LOCAL INFILE '/home/toUpload.txt' INTO TABLE table_name;
ERROR 1148 (42000): The used command is not allowed with this MySQL version
mysql>


monte@oobun2:~$ mysql -h localhost -u monte -p monte --local-infile
Enter password: 

...

mysql> LOAD DATA LOCAL INFILE '/home/toUpload.txt' INTO TABLE table_name;
Query OK, 8 rows affected (0.04 sec)
Records: 8  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT * FROM table_name;
+----------+--------+---------+------+------------+------------+
| name     | owner  | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | f    | 1993-02-04 | NULL       |
| Claws    | Gwen   | cat     | m    | 1994-03-17 | NULL       |
| Buffy    | Harold | dog     | f    | 1989-05-13 | NULL       |
| Fang     | Benny  | dog     | m    | 1990-08-27 | NULL       |
| Bowser   | Diane  | dog     | m    | 1979-08-31 | 1995-07-29 |
| Chirpy   | Gwen   | bird    | f    | 1998-09-11 | NULL       |
| Whistler | Gwen   | bird    | NULL | 1997-12-09 | NULL       |
| Slim     | Benny  | snake   | m    | 1996-04-29 | NULL       |
| Puffball | Diane  | hamster | f    | 1999-03-30 | NULL       |
+----------+--------+---------+------+------------+------------+
9 rows in set (0.00 sec)

将您的文件保存在/tmp文件夹中,然后尝试相同的命令,它将起作用,因为mysql用户应该有权从源目录读取文件。

您是否向正确的用户授予了权限?MySQL通常使用自己的用户名运行。目前,没有人可以回答您的问题,因为您的帖子中没有提到导致您问题的原因。你能打印并发布apparmor的权限吗?(我不使用它,所以IDK。)@jpaugh-In-ubuntu-apparmor是一个与ubuntu 14.04一起提供的应用程序,出于安全考虑,它阻止mysql读/写目录,我将正在处理的文件放在它的排除项中,请求不会出现在apparmor的日志中。当我说permission时,我将文件的所有权授予了mysql用户。Ok。我知道apparmor是什么,但我从未使用过它(或SELinux)。我只是指出,任何答案都必然是猜测。(其中一些人可能是很有根据的猜测。)这可以作为一种健全性检查,但显然不是一个永久性的解决方案,因为操作系统在重新启动时会覆盖
/tmp
,通常会自由删除
/tmp
文件夹中的项目。亲爱的@jpaugh,哪个文件,我们还将上传一个临时文件,将这种类型的临时文件保存在数据目录中也不是一个好主意。由于您已经提交了评估,所以请您稍微解释一下上传数据以将文件保存在/tmp文件夹中的缺点。OP从未建议该文件是临时文件。(并且可能不想删除它,即使当前操作是“临时的”)并且,一些Linux新手可能会路过,但没有意识到/tmp是特殊的。这不是一个可靠的解决方案。我认为“快速修复”是可以的,但你至少应该警告那些不小心的人。