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 способен к решению этой проблемы?
Из руководства: Оператор 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
Путь, который вы даете LOAD DATA INFILE
предназначен для файловой системы на машине, на которой работает сервер, а не для машины, с которой вы подключаетесь. ЗАГРУЗИТЬ ЛОКАЛЬНЫЙ ИНФАЙЛ ДАННЫХ
предназначен для клиентской машины, но требует, чтобы сервер был запущен с правильными настройками, в противном случае это запрещено. Вы можете прочитать все об этом здесь: http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html
Что касается SELECT INTO OUTFILE
Я не уверен, почему нет локальной версии, к тому же, вероятно, сложно сделать это через соединение. Вы можете получить ту же функциональность с помощью инструмента mysqldump
, но не путем отправки SQL на сервер.
Re: SELECT * INTO OUTFILE
Проверьте, есть ли у MySQL разрешения на запись файла в каталог OUTFILE на сервере.