2010-06-01 29 views

Trả lời

27

Hehe, đây là loại một hack, nhưng nó hoạt động (sử dụng bash):

mysqldump -u USER -p DATABASE $(mysql -u USER -p -D DATABASE -Bse "show tables like 'PREFIX%'") > /tmp/DATABASE.out 

Thay đổi dòng chữ ALLCAPS khi cần thiết.

+0

hack đẹp, và nó hoạt động hoàn hảo, cảm ơn ... – mabuzer

+0

câu trả lời khác này là một dupe, nhưng nó đi sâu hơn một chút, tôi nghĩ vậy. http://stackoverflow.com/a/5269543/8047 –

+0

@unutbu Tôi nhận được lỗi sau khi tôi thử triển khai thực hiện: "mysqldump: unknown option '-D'". Có suy nghĩ gì không? Khi tôi chỉ chạy phần mysql trong ngoặc đơn, nó sẽ xuất ra các bảng mà tôi muốn đổ - nhưng sau đó nó ném lỗi khi tôi thử và sử dụng nó trong câu lệnh mysqldump. – dayne

0

Bạn có thể tạo kịch bản backup.sh:

BACKUP_DIR="/path/to/backups" 

DB_HOST="domain.com" 
DB_USER="user" 
DB_PASS="pass" 

PREFIX="phpbb" 

TMP_LIST = mysql --host=$DB_HOST --user=$DB_USER --password=$DB_PASS -e "show databases;" | grep $PREFIX 

# just get to database name column (may be $1, don't remember) 
TMP_LIST = cat $TMP_LIST | awk '{print $2}' 

# Getting dbs 
mkdir $BACKUP_DIR/tmp 
for db in $TMP_LIST ; do 
    mysqldump --host=$DB_HOST --user=$DB_USER --password=$DB_PASS --opt $db > $BACKUP_DIR/tmp/$db.sql 
    zip -mj $BACKUP_DIR/tmp/$db.sql.zip $BACKUP_DIR/tmp/$db.sql 2>&1 
done 

Hy vọng nó giúp.

Các vấn đề liên quan