MySQL 數據庫跨服務器遷移與備份的標準化操作流程,兩條核心命令覆蓋 90% 場景。
mysqldump -u [username] -p [database_name] > [dump_file.sql]
參數解析:
-u:數據庫用戶名-p:提示輸入密碼(或直接 -ppassword,無空格,不推薦生產環境)database_name:目標庫名(省略則導出所有庫,需加 --all-databases)>:Shell 重定向,將標準輸出寫入 SQL 文本文件
# 1. 登錄 MySQL 創建同名空庫
mysql -u [username] -p -e "CREATE DATABASE [database_name];"
# 2. 導入數據
mysql -u [username] -p [database_name] < [dump_file.sql]
關鍵點:必須先創建目標庫,再導入。導入過程會自動執行 SQL 文件中的 CREATE TABLE、INSERT 等語句重建結構與數據。
| 場景 | 命令示例 | 關鍵參數說明 |
|---|---|---|
| 僅導出結構(無數據) | mysqldump -u root -p --no-data db > schema.sql | --no-data / -d |
| 導出指定表 | mysqldump -u root -p db table1 table2 > tables.sql | 表名列在庫名後 |
| 導出時加鎖保證一致性 | mysqldump -u root -p --single-transaction --master-data=2 db > dump.sql | InnoDB 熱備核心組合 |
| 壓縮導出大庫 | mysqldump -u root -p db | gzip > dump.sql.gz | 管道流式壓縮,節省磁盤 |
| 排除特定表 | mysqldump -u root -p db --ignore-table=db.log_table > dump.sql | --ignore-table |