MySQL ВЫБРАТЬ В OUTFILE на другой сервер? - PullRequest
6 голосов
/ 10 мая 2010

У меня есть сценарий оболочки на сервере а. Скрипт выплевывает CSV-файл в локальный каталог. Проблема в том, что сервер базы данных находится на сервере b. Как мне использовать select * в outfile в такой настройке?

Я получаю

Can't create/write to file '/home/username/test.csv/' (Errcode: 2)

Решена загрузка данных с использованием ключевого слова 'LOCAL'. Есть ли что-то подобное для outfile?

Ответы [ 2 ]

12 голосов
/ 10 мая 2010

select into outfile может создать файл только на сервере, а не на клиенте.

Вот что руководство рекомендует для вашей ситуации:

Если вы хотите создать получившийся файл на некотором клиентском хосте, кроме хост сервера, вы не можете использовать SELECT ... в аутфайл. В этом случае вы вместо этого следует использовать команду, такую ​​как mysql -e "SELECT ..."> имя_файла для сгенерируйте файл на клиентском хосте.

http://dev.mysql.com/doc/refman/5.1/en/select.html

0 голосов
/ 22 декабря 2017

Используйте команду ниже:

mysql -uusername -ppassword -h DBIP DBNAME -e \
"SELECT * FROM tablename" > /destinationpath/outputfilename.csv
...