sql >> Databasteknik >  >> RDS >> Mysql

Dumpa alla tabeller i CSV-format med 'mysqldump'

Först kan jag ge dig svaret för en tabell:

Problemet med alla dessa INTO OUTFILE eller --tab=tmpfile (och -T/path/to/directory ) svar är att det kräver att mysqldump körs på samma server som MySQL-server och har dessa åtkomsträttigheter.

Min lösning var helt enkelt att använda mysql (inte mysqldump ) med -B parameter, infoga SELECT-satsen med -e , massera sedan ASCII-utgången med sed , och avsluta med CSV inklusive en rubrikfältrad:

Exempel:

 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"

"id","login","lösenord","mapp","e-post""8","mariana","xxxxxxxxxx","mariana","""3","squaredesign","xxxxxxxxxxxxxxxxxx"," squaredesign"," .com ""5","Sarko","xxxxxxxxxx","Sarko","""6","LogitransPoland","xxxxxxxxxxxxxx","LogitransPoland","""7","Amos","xxxxxxxxxxxxxxxxxxxx"," Amos","""9","Annabelle","xxxxxxxxxxxxxxxx","Annabelle","""11","Brandfathers andSons","xxxxxxxxxxxxxxxxxx","BrandfathersAndSons","""12","ImagineGroup", "xxxxxxxxxxxxxxxx","ImagineGroup","""13","EduSquare.pl","xxxxxxxxxxxxxxxxxx","EduSquare.pl","""101","tmp","xxxxxxxxxxxxxxxxxxxxxx","_","datle99919de9e99dsqdecom

Lägg till en > outfile.csv i slutet av den en-liner, för att få din CSV-fil för den tabellen.

Sedan får du en lista över alla dina bord med

mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"

Därifrån är det bara ett steg till att göra en loop, till exempel i Bash-skalet för att iterera över dessa tabeller:

 for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do
     echo .....;
 done

Mellan do och ; done infoga det långa kommandot jag skrev i del 1 ovan, men ersätt ditt tabellnamn med $tb istället.



  1. Hämta utdata från dbms_output.get_lines med JDBC

  2. Varför är det bäst att lagra ett telefonnummer som en sträng kontra heltal?

  3. Installera pg gem; FEL:Det gick inte att bygga ädelstensinbyggt tillägg

  4. SQL Fyll i tabell med slumpmässiga data