# CentOS 6/7 通用 (官方 RPM) rpm -ivh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm # 先裝 repo yum install -y mysql-community-server-5.6.* # 或 Percona Server 5.6 (推薦,效能更強) yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum install -y Percona-Server-server-56
.tar.gz 或 _xb.qp 加密檔)chown -R mysql:mysql /data/mysql_restore/ # 確保 mysql 進程可讀寫
cat > /data/mysql_restore/my.cnf <<'EOF' [mysqld] datadir = /data/mysql_restore/backup_20240115_031920/ socket = /data/mysql_restore/mysql.sock port = 3307 server_id = 99 log-error = /data/mysql_restore/error.log pid-file = /data/mysql_restore/mysqld.pid innodb_data_file_path = ibdata1:12M:autoextend innodb_log_file_size = 50331648 innodb_log_files_in_group = 2 default-storage-engine = INNODB skip-grant-tables # 關鍵:跳過權限表,免密登入 EOF
# 在 mysql 客戶端內執行
USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
UPDATE user SET Host='%' WHERE User='root' AND Host='127.0.0.1';
FLUSH PRIVILEGES;
項目 官方文檔 本實踐
恢復工具 需安裝 Percona XtraBackup 執行 --prepare + --copy-back 直接啟動 mysqld 讀取解包後檔案 (利用 skip-grant-tables)
Root 密碼 官方未強調 RDS 備份中 root 無密碼,需手動重置
適用場景 完整物理恢復至同版本 MySQL 快速驗證/導出邏輯備份/異構遷移
常見坑點與解決
xtrabackup_logfile 或錯誤日誌獲取正確值寫入 my.cnfsetenforce 0 或配置正確上下文阿里雲 RDS 物理備份本地恢復核心路徑:下載 → Linux 官方腳本解包 → 權限修正 → 專用 my.cnf (skip-grant-tables) → 啟動臨時實例 → 驗證/導出邏輯備份。此法繞過 XtraBackup prepare/copy-back 複雜流程,適合快速驗證、開發測試數據獲取、異構遷移。生產環境正式遷移仍建議使用邏輯備份或官方物理恢復流程。