Ubuntu LNMP環境中MySQL數據庫恢復步驟
sudo systemctl status mysql # 查看服務狀態
sudo systemctl start mysql # 若未運行則啟動
mysqldump
生成的.sql
或.sql.gz
文件),并存儲在可訪問的路徑(如/home/user/backups/
)。若備份的是單個數據庫的.sql
文件(如mydatabase_backup.sql
),執行以下命令:
mysql -u root -p mydatabase < /path/to/mydatabase_backup.sql
-u root
指定管理員賬號(需替換為實際用戶名);-p
提示輸入密碼(不要在命令中直接寫密碼,避免泄露);mydatabase
為目標數據庫名(需提前創建,可通過mysql -u root -p -e "CREATE DATABASE mydatabase;"
創建);/path/to/...
為備份文件路徑。若備份文件是壓縮的(如mydatabase_backup.sql.gz
),需先解壓再恢復:
gunzip < /path/to/mydatabase_backup.sql.gz | mysql -u root -p mydatabase
gunzip
解壓文件并通過管道(|
)直接將內容導入MySQL,無需生成中間.sql
文件。若備份的是所有數據庫的.sql
文件(如full_backup.sql
,通常包含--all-databases
參數生成),執行:
mysql -u root -p < /path/to/full_backup.sql
若開啟了二進制日志(log_bin
參數開啟),可通過mysqlbinlog
工具恢復到某個時間點的狀態(如誤刪除數據后):
# 1. 查找需恢復的二進制日志文件及位置
mysqlbinlog --start-datetime="2025-10-12 10:00:00" --stop-datetime="2025-10-12 11:00:00" /var/log/mysql/mysql-bin.000001 > recovery.sql
# 2. 執行恢復
mysql -u root -p < recovery.sql
--start-datetime
和--stop-datetime
指定恢復的時間范圍(需根據業務需求調整);mysql-bin.000001
為二進制日志文件(可通過ls /var/log/mysql/
查找最新文件)。mysql -u root -p
USE mydatabase; # 切換至目標數據庫
SHOW TABLES; # 查看表是否存在
SELECT * FROM tb_table LIMIT 10; # 檢查數據是否恢復
chmod 600 /path/to/backup.sql
),避免未授權訪問。--single-transaction
參數(適用于InnoDB引擎),確保備份數據的一致性:mysqldump -u root -p --single-transaction --all-databases > full_backup.sql
通過以上步驟,可在Ubuntu LNMP環境中快速恢復MySQL數據庫,保障數據安全。