Sto cercando di scaricare il contenuto di una tabella in un file csv utilizzando un'istruzione MySQL SELECT INTO OUTFILE. Se lo faccio:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv verrà creato sul server nella stessa directory in cui sono archiviati i file del database.
Tuttavia, quando cambio la mia query in:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
Ottengo:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13 è un errore di autorizzazioni, ma lo ottengo anche se cambio la proprietà di / data in mysql: mysql e gli do i permessi 777. MySQL è in esecuzione come utente "mysql".
Stranamente posso creare il file in / tmp, ma non in qualsiasi altra directory che ho provato, anche con i permessi impostati in modo tale che l'utente mysql possa scrivere nella directory.
Questo è MySQL 5.0.75 in esecuzione su Ubuntu.
/tmp
.