mysqldump_all.sh:支援三種模式的備份自動化腳本——first(遠端初始化建庫)、local(本地壓縮備份)、無參數(遠端同步備份)。
REMOTE_HOST="" # 遠端主機 IP/主機名
REMOTE_PASSWORD="" # 遠端 MySQL root@本機 密碼
DB_PATH="/var/lib/mysql"
LOCAL_PASSWORD="" # 本地 MySQL root 密碼
DB_BACKUP_PATH="/root/db_bk"
NO_BACKUP_DB="" # 排除庫,空格分隔,如 "test mysql information_schema"
$DB_PATH 下一級目錄作為資料庫名。NO_BACKUP_DB 列表與非目錄項目。first:遠端 mysqladmin create db 建庫。local:本地 mysqldump | gzip,保留上一版 .1.gz。mysqldump --add-drop-table | mysql -h $REMOTE_HOST 管道同步至遠端。# 1. 首次建立遠端鏡像庫
./mysqldump_all.sh first
# 2. 日常本地備份(可加入 crontab)
./mysqldump_all.sh local
# 3. 日常遠端同步備份
./mysqldump_all.sh
--defaults-extra-file 指向 chmod 600 的 .my.cnf。--single-transaction,InnoDB 可能出現不一致,建議加入。CREATE、DROP、INSERT 等權限,遵循最小權限原則建立專用備份帳號。中小型 MyISAM/InnoDB 混合環境、單向異地備份、無專業備份工具授權的團隊快速落地方案。