Estou tentando despejar o conteúdo de uma tabela em um arquivo csv usando uma instrução SELECT INTO OUTFILE do MySQL. Se eu fizer:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv será criado no servidor no mesmo diretório onde os arquivos deste banco de dados estão armazenados.
No entanto, quando eu mudo minha consulta para:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
Eu recebo:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13 é um erro de permissão, mas eu o recebo mesmo se eu mudar a propriedade de / data para mysql: mysql e conceder a ele 777 permissões. O MySQL está sendo executado como usuário "mysql".
Estranhamente, posso criar o arquivo em / tmp, mas não em qualquer outro diretório que tentei, mesmo com permissões definidas de forma que o usuário mysql possa gravar no diretório.
Este é o MySQL 5.0.75 em execução no Ubuntu.
/tmp
.