Ortak önekle başlayan belirli tabloları dökmek için mysqldump
'u nasıl kullanabilirim?Mysqldump birden fazla tablo mu?
15
A
cevap
27
Hehe, bu bir hack türüdür, ancak (bash kullanarak) çalışır:
mysqldump -u USER -p DATABASE $(mysql -u USER -p -D DATABASE -Bse "show tables like 'PREFIX%'") > /tmp/DATABASE.out
Değişim ALLCAPS kelimeler gerektiği gibi.
0
Sen backup.sh komut dosyası oluşturabilirsiniz:
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
faydası Umut.
güzel hack, ve çok çalışıyor, teşekkürler ... – mabuzer
Bu diğer cevap bir dupe, ama biraz daha derinliklerine gider, bence. http://stackoverflow.com/a/5269543/8047 –
@unutbu Uygulamayı denediğimde şu hatayı alıyorum: "mysqldump: unknown option '-D'". Düşüncesi olan var mı? Parantez içinde sadece mysql kısmını çalıştırdığımda, dökmek istediğim tabloları çıkarır - ama sonra mysqldump deyiminde kullanmayı denediğimde hatayı atar. – dayne