Mysql
 sql >> база данни >  >> RDS >> Mysql

Изхвърлете всички таблици във формат CSV с помощта на 'mysqldump'

Първо, мога да ви дам отговора за един таблица:

Проблемът с всички тези INTO OUTFILE или --tab=tmpfile-T/path/to/directory ) отговорът е, че изисква стартиране на mysqldump на същия сървър като MySQL сървър и притежаващи тези права за достъп.

Моето решение беше просто да използвам mysql (не mysqldump ) с -B параметър, вмъкнете израза SELECT с -e , след това масажирайте ASCII изхода с sed и завърши с CSV, включително ред на полето на заглавката:

Пример:

 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","password","folder","email""8","mariana","xxxxxxxxxx","mariana","""3","squaredesign","xxxxxxxxxxxxxxxx"," squaredesign","atex. ""4","miedziak","xxxxxxxxxx","miedziak"," ""5","Sarko","xxxxxxxxx","Sarko","""6","LogitransPoland","xxxxxxxxxxxxxx","LogitransPoland","""7","Amos","xxxxxxxxxxxxxxxxxx"," Amos","""9","Annabelle","xxxxxxxxxxxxxxxx","Annabelle","""11","Bandfathers andSons","xxxxxxxxxxxxxxxx","BrandfathersAndSons","""Gro","Imagine", "xxxxxxxxxxxxxxxx","ImagineGroup","""13","EduSquare.pl","xxxxxxxxxxxxxxxx","EduSquare.pl","""101","tmp","xxxxxxxxxxxxxx"," a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f0a7bfb2b3ddc1c4de83818591829594958399979ede91849c918383999979ede91849c918383999979ede91849c91838399919f91838399919f99db99999999999999999999999999999999999999999999999999999 "

Добавете > outfile.csv в края на този едноред, за да получите своя CSV файл за тази таблица.

След това вземете списък с всички вашите таблици с

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

Оттук нататък е само още една стъпка да направите цикъл, например в обвивката на Bash, за да преминете през тези таблици:

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

Между do и ; done вмъкнете дългата команда, която написах в част 1 по-горе, но заменете името на вашата таблица с $tb вместо това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да откриете, че транзакцията вече е започнала?

  2. Решаване на повреда на комуникационната връзка с JDBC и MySQL

  3. Как да заредите JDBC конфигурация от пример за файл със свойства

  4. Предоставяне на MySQL разрешения за таблица и колона

  5. MySQL не може да добави ограничение за външен ключ