您好我正在从主服务器到服务器执行数据库copy and paste
。然而,奴隶上有一张表,我不想被主人覆盖。
我一直在尝试通过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 :(得分: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。
答案 1 :(得分: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;