資料庫上線前,先建立「可恢復」機制。備份腳本須自動化、可驗證、可一鍵還原。
mysqlhotcopy(需 Perl、DBD::mysql,適用 MyISAM 表)/backup/mysql/root/mysql-backup.sh#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
BACKDIR=/backup/mysql
ROOTPASS='YourRootPassword' # 請替換為真實密碼
# 重建備份目錄
rm -rf $BACKDIR
mkdir -p $BACKDIR
# 獲取所有資料庫名稱(/var/lib/mysql 下的子目錄)
DBLIST=$(ls -p /var/lib/mysql | grep / | tr -d /)
# 逐庫熱備份
for dbname in $DBLIST; do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done
chmod 700 /root/mysql-backup.sh(僅 root 可執行)/root/mysql-backup.sh → 檢查 ls -l /backup/mysql/00 03 * * * /root/mysql-backup.shDROP TABLE test; DROP DATABASE test;cp -Rf /backup/mysql/test/ /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/test/
chmod 700 /var/lib/mysql/test/
chmod 660 /var/lib/mysql/test/*
USE test; SELECT * FROM test; 資料完整回覆。UPDATE test SET name='Shit,Windows' WHERE num=1;cp -Rf ... 覆蓋資料目錄。Hello,CentOS。mysqldump --single-transaction 或 xtrabackup。chown/chmod 步驟不可省略,否則 MySQL 無法讀取還原的檔案。一個 mysqlhotcopy + Shell + crontab 的輕量方案,即可構建「每日自動備份 + 分鐘級還原」的基礎防線。專業與業餘的分水嶺,在於「備份能不能用」以及「敢不敢在生產環境按下還原鍵」。