Saya mencoba untuk membuang isi tabel ke file csv menggunakan pernyataan MySQL SELECT INTO OUTFILE. Jika aku melakukan:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv akan dibuat di server di direktori yang sama dengan tempat file database ini disimpan.
Namun, ketika saya mengubah kueri saya menjadi:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
Saya mendapat:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13 adalah kesalahan izin, tetapi saya mendapatkannya bahkan jika saya mengubah kepemilikan / data ke mysql: mysql dan memberinya 777 izin. MySQL berjalan sebagai pengguna "mysql".
Anehnya saya dapat membuat file di / tmp, hanya saja tidak di direktori lain yang pernah saya coba, bahkan dengan izin yang disetel sedemikian rupa sehingga pengguna mysql harus dapat menulis ke direktori tersebut.
Ini adalah MySQL 5.0.75 yang berjalan di Ubuntu.
/tmp
.