Pregunta

estoy atascado. Básicamente quiero crear un archivo de datos local (archivo CSV) a partir de una base de datos remota utilizando el comando OUTFILE.

Estoy básicamente, la extracción de datos .. y quiero crear en mi servidor de archivos local vs. crear el archivo de salida en el servidor remoto. Estoy limitado en el espacio de forma remota, por lo tanto quiero crear el archivo localmente. ¿Cuál falto de cómo hacer esto? Gracias!

Esta es mi sintaxis de trabajo hasta ahora en la línea de comandos (que está creando el archivo que quiero, sino en el servidor remoto)

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"
¿Fue útil?

Solución

De acuerdo con la MySQL Seleccionar sintaxis , puede' t uso OUTFILE para dar salida a un archivo fuera del propio servidor.

tendría que convertir el delimitado por tabuladores resultado de la consulta a formato CSV como esto ( comando sed acreditado aquí ).

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top