Вопрос

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

Я в основном, вытягиваю данные .. и хочу создать их на моем локальном сервере файлов, а не создание 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"
Это было полезно?

Решение

Согласно MySQL Select Syntax, Вы не можете использовать 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top