首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

DreamHost 虛擬主機 MySQL 備份與還原:SSH mysqldump 實操步驟

     編輯:MySQL 資料庫相關知識

前置條件

  • 已開啟 SSH 存取(DreamHost Panel → Users → Manage Users → Edit → Shell access)。
  • 本機安裝 PuTTY (Windows) 或使用 Terminal (Mac/Linux)。
  • 取得資料庫連線資訊:
    Host(如 mysql.example.com)、Database、User、Password。

備份(匯出)

  1. SSH 登入:
    ssh user@yourdomain.com
  2. 2. 切換至可寫目錄(如 ~/backups):
    mkdir -p ~/backups && cd ~/backups 3. 執行 mysqldump:
    mysqldump -h mysql.example.com -u db_user -p db_name > backup_$(date +%F).sql 4. 輸入密碼,等待完成。檔案將在 ~/backups。

壓縮版:
mysqldump -h mysql.example.com -u db_user -p db_name | gzip > backup_$(date +%F).sql.gz

還原(匯入)

  1. 上傳備份檔至伺服器(SCP/SFTP/FTP)或直接用已存在的備份檔。
  2. 2. SSH 登入,進入備份檔目錄。 3. 進入 MySQL 互動模式:
    mysql -h mysql.example.com -u db_user -p db_name 4. 執行還原:
    SOURCE backup_2024-01-15.sql; 5. 等待完成,輸入 EXIT; 離開。

非互動單行指令:
mysql -h mysql.example.com -u db_user -p db_name < backup_2024-01-15.sql

常見問題

錯誤原因與解法
Access denied帳密錯誤、Host 不允許 → 確認 DreamHost 資料庫主機名、用戶權限
Unknown database資料庫名拼寫錯誤、大小寫
Packet too large單條 INSERT 過大 → mysqldump --max_allowed_packet=512M、mysql --max_allowed_packet=512M
Timeout大資料庫匯出超時 → 分表備份、加 --quick、或用實體備份工具

自動化建議

# ~/backup_mysql.sh
#!/bin/bash
DATE=$(date +%F)
mysqldump -h mysql.example.com -u db_user -p'password' db_name | gzip > ~/backups/db_$DATE.sql.gz
# 保留 30 天
find ~/backups -name 'db_*.sql.gz' -mtime +30 -delete

加入 crontab -e:0 3 * * * ~/backup_mysql.sh(每天凌晨 3 點備份)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved