MySQL-дамп в localhost outfile из удаленной базы данных - PullRequest
13 голосов
/ 20 января 2011

Я застрял.Я в основном хочу создать файл данных LOCAL (файл CSV) из удаленной базы данных с помощью команды OUTFILE.

Я, в основном, извлекаю данные ... и хочу создать их на моем локальном файловом сервере вместо создания выходного файла на удаленном сервере.Я ограничен в пространстве удаленно, поэтому я хочу создать файл локально.Что мне не хватает, как это сделать?Спасибо!

Это мой рабочий синтаксис в командной строке (он создает файл, который я хочу, но на удаленном сервере)

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 INTO OUTFILE '/tmp/mytest.csv' FIELDS TERMINATED BY ','  FROM tst_p000 limit 10"

1 Ответ

20 голосов
/ 20 января 2011

В соответствии с синтаксисом MySQL Select , вы не можете использовать OUTFILE для вывода в файл за пределами самого сервера.

Вам потребуется преобразовать вывод табуляции с разделителямизапрос в формате CSV, подобный этому ( здесь указана команда sed ).

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 " | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv
...