2016-11-25 69 views
0

嗨,我正在做一個數據庫從主人到奴隸copy and paste。但是,從服務器上有一張表格,我不想被主人覆蓋。忽略mysqldump中的表?

我一直在嘗試通過cron作業運行下面的bash腳本 - 但它一直覆蓋我想忽略的從表。我究竟做錯了什麼?

#!/bin/bash 

#Database login credentials - need to be changed accordingly 
dbHost="localhost" 

#Master (Staging) 
dbMastUser="admin_site" 
dbMastName="admin_site_pineapple_master" 

#Slave (Live) 
dbSlavUser="admin_sync" 
dbSlavName="admin_site_pineapple_slave" 

dbPass="ExamplePassword" 


EXCLUDED_TABLES=(
forms-responses 
) 

IGNORED_TABLES='' 
for TABLE in "${EXCLUDED_TABLES[@]}" 
do : 
    IGNORED_TABLES+=" --ignore-table=${dbMastName}.${TABLE}" 
done 

#Update the database from the Master to the Slave 
mysqldump -h ${dbHost} -u ${dbMastUser} -p${dbPass} ${dbMastName} ${IGNORED_TABLES} | mysql -h ${dbHost} -u ${dbSlavUser} -p${dbPass} ${dbSlavName} 
+0

你的問題是什麼? – Inian

+0

將'localhost' var設置爲'$(localhost)'。 –

+0

請參閱[本](http://www.tldp.org/LDP/LG/issue38/tag/6.html) –

回答

1

無視表,你必須使用該語法

mysqldump -h {hostname} -u {username} -p{password} --ignore-table test.votes test > E:/db_backups/test_1480080906.sql 

一般語法

mysqldump -h {hostname} -u {username} -p{password} --ignore-table dbname.tbl_name db_name > E:/db_backups/test_1480080906.sql 

注:我們需要設置的選項忽略一些表

感謝 網速慢W.

+0

感謝您的回覆 - 您能否修改您的答案以澄清本節「test.votes測試」 –

0
/usr/local/mysql/bin/mysqldump -uroot -p{pwd} --skip-lock-tables --databases f6dms $(mysql -uroot -p{pwd} -Df6dms -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms."$1}'|xargs)| gzip > /data/backup/database_f6dms_`date '+%m-%d-%Y'`.sql.gz;