我试图使用 MySQLSELECTINTOOUTFILE 语句将表的内容转储到一个 csv 文件中。如果我这样做:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv will be created on the server in the same directory this database's files are stored in.
但是,当我将查询更改为:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
我得到了:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13是一个权限错误,但是即使我将/data 的所有权更改为 mysql: mysql 并赋予它777个权限,我也会得到它。MySQL 作为用户“ MySQL”运行。
奇怪的是,我可以在/tmp 中创建文件,只是不能在我尝试过的任何其他目录中创建,即使权限设置为用户 mysql 应该能够写入该目录。
这是在 Ubuntu 上运行的 MySQL 5.0.75。