Я намагаюся скинути вміст таблиці у файл CSV за допомогою оператора MySQL SELECT INTO OUTFILE. Якщо я:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv буде створено на сервері в тому самому каталозі, в якому зберігаються файли бази даних.
Однак коли я змінюю запит на:
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 повинен мати можливість записувати в каталог.
Це MySQL 5.0.75, що працює на Ubuntu.
/tmp
.