Question

Je suis coincé. Je veux essentiellement de créer un fichier de données LOCAL (csv) à partir d'une base de données distante en utilisant la commande OUTFILE.

Je suis essentiellement, l'extraction de données .. et que vous souhaitez créer sur mon serveur de fichiers local par rapport à la création du fichier de sortie sur le serveur distant. Je suis limité sur l'espace à distance, donc je veux créer le fichier localement. Qu'est-ce que je manque sur la façon de le faire? Merci!

Ceci est ma syntaxe de travail jusqu'à présent sur la ligne de commande (il crée le fichier que je veux, mais sur le serveur distant)

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"
Était-ce utile?

La solution

Selon le syntaxe MySQL Sélectionnez , Vous pouvez » t OUTFILE utilisation pour la production d'un fichier en dehors du serveur lui-même.

vous devez convertir la sortie délimité par des tabulations de la requête au format CSV comme celui-ci ( commande sed créditée ).

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top