Где MySQL на OSX по умолчанию записывает файлы?
Я пытаюсь записать некоторые данные из оператора выбора MySQL в файл на Mac под управлением Snow Leopard.
select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
fractile_v2 != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';
К сожалению, это приводит к следующей ошибке:
Код ошибки: 1. Не удается создать / записать в файл '/Users/andrew/Desktop/gics_v2.csv' (код ошибки: 13)
Я предполагаю, что это проблема с разрешениями.
Когда я заменяю полный путь к файлу '/User/my-name/Desktop/gics_v2.csv'
с просто gics_v2.csv
утверждения, кажется, бегут. Однако я понятия не имею, где файл сохранен, и я не могу найти его.
Кто-нибудь знает? И может кто-нибудь также предложить, как я могу решить начальную ошибку записи? Я использую MySQL от имени пользователя root.
4 ответа
Это проблема с разрешениями, потому что вы пытаетесь заставить пользователя mysql писать в ваш личный домашний каталог. Попробуйте вместо этого записать в папку, которую вы создаете в / usr / local /, и просто для безопасности вы можете сделать глобальные разрешения на чтение / запись, поскольку это ваш Mac.
Откройте терминал на вашем Mac:
cd / usr / local
Mkdir DbOutput
sudo chmod -R 777 DbOutput
Затем вернитесь к своему коду, но измените путь:
выберите date_base, fractile_v2, gics, count(gvkey_iid)
от мастера
где fractile_v2 <= 15 и
fractile_v2!= 0
сгруппировать по date_base, gics, fractile_v2
упорядочить по date_base, fractile_v2
предел 100000
INTO OUTFILE '/usr/local/DbOutput/gics_v2.csv'
ПОЛЯ, ПРЕКРАЩЕННЫЕ ',';
По умолчанию SELECT ... INTO OUTFILE помещает файлы в каталог, где находятся файлы данных. Так что-то вроде /path/to/datadir/databasename/gics_v2.csv
Он пишет файлы как сервер, а не клиент. Таким образом, он использует не права вашего пользователя, а пользователя, который запускает процесс mysqld (обычно это _mysql на osx).
Вам просто нужно указать путь, по которому этому пользователю разрешено писать.
Я знаю, что вопрос устарел, но, к вашему сведению, на моем Mac OS X 10.10 OUTPUT
каталог примерно такой: /usr/local/mysql-5.7.10-osx10.9-x86_64/data/databasename/***.csv
,
Я использую Mac OS X Server 10.7.4 и для меня каталог OUTFILE /var/mysql/databasename/