我有一个脚本尝试使用LOAD DATA INFILE将一些数据加载到
MySQL中.出于某种原因,如果文件位于/ tmp目录中,则它可以工作,但如果文件位于具有相同权限的另一个目录中,则不起作用.我找不到任何方法让MySQL从/ tmp目录或数据库目录之外导入数据,但我在手册中找不到任何解释为什么会出现这种情况的内容.
情况:
$ls -l /
...
drwxrwxrwt 21 root root 4096 2010-10-19 20:02 tmp
drwxrwxrwt 2 root root 4096 2010-10-19 20:14 tmp2
$ls -l /tmp/data.csv
-rwxr-xr-x 1 timm timm 415431 2010-10-19 20:02 /tmp/data.csv
$ls -l /tmp2/data.csv
-rwxr-xr-x 1 timm timm 415431 2010-10-19 20:14 /tmp2/data.csv
AFAICT在重要方面是相同的.但是,如果在MySQL命令行,我做:
> LOAD DATA INFILE '/tmp2/data.csv' IGNORE INTO TABLE ports
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ';
ERROR 29 (HY000): File '/tmp2/data.csv' not found (Errcode: 13)
> LOAD DATA INFILE '/tmp/data.csv' IGNORE INTO TABLE ports
FIELDS TERMINATED BY