MySQL SELECT INTO OUTFILE deyimini kullanarak bir tablonun içeriğini bir csv dosyasına dökmeye çalışıyorum. Eğer yaparsam:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv, sunucuda bu veritabanının dosyalarının depolandığı dizinde oluşturulacaktır.
Ancak, sorgumu şu şekilde değiştirdiğimde:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
Alırım:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13 bir izin hatasıdır, ancak / data'nın sahipliğini mysql: mysql olarak değiştirsem ve 777 izinlerini versem bile anlıyorum. MySQL, "mysql" kullanıcısı olarak çalışıyor.
Garip bir şekilde dosyayı / tmp içinde oluşturabilirim, ancak denediğim herhangi bir dizinde değil, mysql kullanıcısının dizine yazabilmesi için izinler ayarlanmış olsa bile.
Bu, Ubuntu'da çalışan MySQL 5.0.75'tir.
/tmp
.