Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết xuất tất cả các bảng ở định dạng CSV bằng cách sử dụng 'mysqldump'

Trước tiên, tôi có thể cung cấp cho bạn câu trả lời cho một bảng:

Sự cố với tất cả những INTO OUTFILE này hoặc --tab=tmpfile (và -T/path/to/directory ) câu trả lời là nó yêu cầu chạy mysqldump trên cùng một máy chủ là máy chủ MySQL và có các quyền truy cập đó.

Giải pháp của tôi chỉ đơn giản là sử dụng mysql ( không mysqldump ) với -B tham số, nội dòng câu lệnh SELECT với -e , sau đó xoa bóp đầu ra ASCII với sed và kết thúc với CSV bao gồm hàng trường tiêu đề:

Ví dụ:

 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", "đăng nhập", "mật khẩu", "thư mục", "email" "8", "mariana", "xxxxxxxxxx", "mariana", "" "3", "thiết kế bình phương", "xxxxxxxxxxxxxxxxx", " thiết kế bình phương "," [email protected] "" 4 "," miedziak "," xxxxxxxxxx "," miedziak "," example @ sqldat .com "" 5 "," Sarko "," xxxxxxxxx "," Sarko "," "" 6 "," LogitransPoland "," xxxxxxxxxxxxxx "," LogitransPoland "," "7", "Amos", "xxxxxxxxxxxxxxxxxxxx", " Amos "," "" 9 "," Annabelle "," xxxxxxxxxxxxxxxx "," Annabelle "," "" 11 "," Brandfathers andSons "," xxxxxxxxxxxxxxxxx "," BrandfathersAndSons "," "" 12 "," ImagineGroup ", "xxxxxxxxxxxxxxxx", "ImagineGroup", "" "13", "EduSquare.pl", "xxxxxxxxxxxxxxxxx", "EduSquare.pl", "" "101", "tmp", "xxxxxxxxxxxxxxxxxxxxx", "_", "

Thêm > outfile.csv ở cuối lớp lót đó, để lấy tệp CSV của bạn cho bảng đó.

Tiếp theo, nhận danh sách tất cả bảng của bạn với

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

Từ đó, chỉ còn một bước nữa để tạo một vòng lặp, chẳng hạn như trong Bash shell để lặp qua các bảng đó:

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

Giữa do; done chèn lệnh dài mà tôi đã viết trong Phần 1 ở trên, nhưng thay thế tên bảng của bạn bằng $tb thay vào đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm không xác định mysql_connect ()

  2. Nhiều bản cập nhật trong MySQL

  3. Truy vấn SQL nhiều giá trị trong một ô

  4. Nhận danh sách các ngày giữa hai ngày

  5. Đặt mật khẩu người dùng gốc MySQL trên OS X