Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vider toutes les tables au format CSV en utilisant 'mysqldump'

Tout d'abord, je peux vous donner la réponse pour une tableau :

Le problème avec tous ces INTO OUTFILE ou --tab=tmpfile (et -T/path/to/directory ) les réponses sont qu'il faut exécuter mysqldump sur le même serveur en tant que serveur MySQL et disposant de ces droits d'accès.

Ma solution était simplement d'utiliser mysql (pas mysqldump ) avec le -B paramètre, intégrez l'instruction SELECT avec -e , puis massez la sortie ASCII avec sed , et terminez avec CSV incluant une ligne de champ d'en-tête :

Exemple :

 mysql -B -u username -p password database -h dbhost -e "SELECT * FROM accounts;" \
 | sed "s/\"/\"\"/g;s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g"

"identifiant","identifiant","mot de passe","dossier","email""8","mariana","xxxxxxxxxx","mariana","""3","squaredesign","xxxxxxxxxxxxxxxxx"," squaredesign","mkobylecki@squaredesign.com ""4","miedziak","xxxxxxxxxx","miedziak","miedziak@mail.com ""5","Sarko","xxxxxxxxx","Sarko","""6","LogitransPologne","xxxxxxxxxxxxxx","LogitransPologne","""7","Amos","xxxxxxxxxxxxxxxxxxxx"," Amos","""9","Annabelle","xxxxxxxxxxxxxxx","Annabelle","""11","Brandfathers andSons","xxxxxxxxxxxxxxxxx","BrandfathersAndSons","""12","ImagineGroup", "xxxxxxxxxxxxxxxx","ImagineGroup","""13","EduSquare.pl","xxxxxxxxxxxxxxxxx","EduSquare.pl","""101","tmp","xxxxxxxxxxxxxxxxxxxxx","_","WOBC-14.squaredesign.atlassian.net@yoMama.com

WOBC-14.squaredesign.atlassian.net@yoMama.com
WOBC-14.squaredesign.atlassian.net@yoMama.com
WOBC-14.squaredesign.atlassian.net@yoMama.com
WOBC-14.squaredesign.atlassian.net@yoMama.com
WOBC-14.squaredesign.atlassian.net@yoMama.com