SELECT INTO OUTFILE не может записать в файл - PullRequest
9 голосов
/ 23 ноября 2010

Я пытаюсь сделать SELECT INTO OUTFILE и получаю следующую ошибку:

General error: 1 Can't create/write to file '/home/jason/projects/mcif/web/downloads/dump.csv' (Errcode: 13). Failing Query: "
SELECT name
INTO OUTFILE '/home/jason/projects/mcif/web/downloads/dump.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM account a

Я знаю, в чем проблема, вероятно: моя папка downloads не доступна для записи моейПользователь MySQL.Я не знаю, как решить эту проблему по двум причинам:

  • Я не знаю, как узнать, что такое пользователь MySQL
  • Я не знаю, какдобавьте пользователя MySQL к пользователям, которые могут писать в папку downloads

Я нахожусь на Ubuntu Linux.Может ли кто-нибудь помочь мне преодолеть эти две вещи?

Ответы [ 4 ]

12 голосов
/ 23 ноября 2010

запишите файл /tmp/dump.csv и скопируйте его поверх. Это позволит вам увидеть, кто что запускает. Я думаю, что вы делаете это из Интернета, а клиент работает как процесс веб-сервера ...

8 голосов
/ 19 марта 2014

mysql -u ИМЯ ПОЛЬЗОВАТЕЛЯ --password = ПАРОЛЬ --database = DATABASE --execute = 'SELECT FIELD, FIELD ОТ TABLE ПРЕДЕЛ 0, 10000' -X> file.xml

0 голосов
/ 30 ноября 2013

клиент, вероятно, будет mysqld.Вы должны изменить авторизацию apparmor, и она будет работать нормально.проверить этот ответ

0 голосов
/ 23 ноября 2010

Вот обсуждение, которое может помочь: Как MySQL может записывать файлы от имени другого пользователя?

Также, пожалуйста, постарайтесь не затушевывать ваши вопросы пухом. В вашем случае вы уже знаете, что это проблема с разрешениями, поэтому все ваши объединения SQL и таблицы не имеют значения. Вы могли бы просто использовать одно поле из одной таблицы на ваш выбор, чтобы продемонстрировать проблему, не затуманивая вещи.

...