выберите * в outfile не работает даже для root - PullRequest
1 голос
/ 26 августа 2011

Когда я запускаю

mysql> select * into outfile "/home/akihirom/file1.txt" from BAIT_INTERACTION;

, я получаю следующую ошибку:

ОШИБКА 1 (HY000): невозможно создать / записать в файл '/home/akihirom/file1.txt'(Errcode: 13)

Это происходит даже как пользователь root, в MySQL или в самой системе.Кто-нибудь знает, почему это может происходить?Спасибо

Ответы [ 3 ]

2 голосов
/ 02 марта 2012

Я объединил оба примера в один и придумал следующее, которое я использовал для задачи капистрано.Я смог вызвать оболочку и запустить ее из командной строки.

mysql -uUSERNAME --database=${DBNAME} --execute=" SELECT * FROM ${TBNAME} INTO OUTFILE '/tmp/dumps/DBNAME.out' "

Я добавил интервал перед двойными кавычками, чтобы вы могли видеть синтаксические различия.

1 голос
/ 28 августа 2011

Я смог сделать то же самое, используя дамп mysql, поместив содержимое оператора select в файл:

mysql -u USERNAME --password=PASSWORD --database=DATABASE --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > file.xml

Откуда у меня идея

0 голосов
/ 13 мая 2014

Уважение к ОШИБКЕ 1 (HY000): не удается создать / записать в файл '/home/akihirom/file1.txt' (код ошибки: 13)
используйте только «file1.txt», потому что сервер записывает только в / var / lib / mysql / DB (где DB - это каталог, называемый базой данных), а позже, если вы являетесь пользователем root, перейдите туда и управляйте файлом так, как вам нужно. Вы также можете использовать file1.cvs; он работает так же, как file1.txt

...