MYSQL - ВЫБИРАЕТ * В ЛОКАЛЬНЫЙ OUTFILE?

MySQL является потрясающим! Я в настоящее время вовлекаюсь в основную миграцию сервера и ранее, наша маленькая база данных раньше размещалась на том же сервере как клиент.
Таким образом, мы раньше делали это: SELECT * INTO OUTFILE .... LOAD DATA INFILE ....

Теперь, мы переместили базу данных в другой сервер и SELECT * INTO OUTFILE .... больше работы, понятные - соображения безопасности, я не верю. Но, интересно LOAD DATA INFILE .... может быть изменен на LOAD DATA LOCAL INFILE .... и обман, это работает.

Я не жалуюсь, ни являюсь мной выражающий отвращение к MySQL. Альтернатива этому добавила, что 2 строки дополнительного кода и системного вызова формируют .sql сценарий. Все, что я хотел знать, то, почему LOAD DATA LOCAL INFILE работы и почему не там такая вещь как SELECT INTO OUTFILE LOCAL?

Я сделал свою домашнюю работу, не мог найти прямой ответ на мои вопросы выше. Я не мог найти запрос новых функций MySQL также. Если кто-то может разрешить это, которое имело, являются потрясающими!

Действительно ли MariaDB способен к решению этой проблемы?

41
задан Up_One 31 March 2014 в 13:37
поделиться

3 ответа

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

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

An example:

mysql -h my.db.com -u usrname--password=pass db_name -e 'SELECT foo FROM bar' > /tmp/myfile.txt
54
ответ дан 27 November 2019 в 00:40
поделиться

Путь, который вы даете LOAD DATA INFILE предназначен для файловой системы на машине, на которой работает сервер, а не для машины, с которой вы подключаетесь. ЗАГРУЗИТЬ ЛОКАЛЬНЫЙ ИНФАЙЛ ДАННЫХ предназначен для клиентской машины, но требует, чтобы сервер был запущен с правильными настройками, в противном случае это запрещено. Вы можете прочитать все об этом здесь: http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html

Что касается SELECT INTO OUTFILE Я не уверен, почему нет локальной версии, к тому же, вероятно, сложно сделать это через соединение. Вы можете получить ту же функциональность с помощью инструмента mysqldump , но не путем отправки SQL на сервер.

5
ответ дан 27 November 2019 в 00:40
поделиться

Re: SELECT * INTO OUTFILE

Проверьте, есть ли у MySQL разрешения на запись файла в каталог OUTFILE на сервере.

1
ответ дан 27 November 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: