2011-01-28 34 views
9

Tôi đang thực hiện kết xuất thường xuyên của cơ sở dữ liệu sử dụng cơ sở dữ liệu để ghi nhật ký. Tôi cần phải tạo ra một lệnh mysqldump mà bãi tất cả mọi thứ từ cơ sở dữ liệu nhưng loại trừ các thông tin hàng cho các bảng đăng nhập.Làm cách nào để loại trừ dữ liệu cho các bảng nhất định nhưng vẫn giữ cấu trúc với mysqldump?

Tôi thấy the no-data parameter, nhưng điều đó dường như không hỗ trợ chỉ chọn một số bảng nhất định.

+0

trên Linux hoặc cửa sổ? – ajreal

+1

@ajreal Linux. Điều đó có quan trọng không? – mattalxndr

Trả lời

8

Chạy 2 lệnh. Một nơi mà bạn liệt kê tất cả các bảng mà bạn muốn một bãi chứa đầy, một trong những nơi bạn đổ chỉ định nghĩa bảng

#structure only 
mysqldump -d -q mydb table1 table2 table3 

#all data too 
mysqldump -q mydb table4 table5 table6 
7

bạn có thể kết hợp với kịch bản shell để giúp tốt hơn

#/bin/bash 

# dump all except for table log 
tables=$(mysql -N <<< "show tables from your_db" | grep -Ev "^log$" | xargs); 
mysqldump your_db $tables > backup.sql 

# dump structure for table log 
mysqldump -d your_db log >> backup.sql 
Các vấn đề liên quan