mysql加载数据本地填充找不到文件
我已检查apparmor并授予该文件的权限: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在
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是特殊的。这不是一个可靠的解决方案。我认为“快速修复”是可以的,但你至少应该警告那些不小心的人。