資料庫遷移兩大主流路徑:邏輯備份 (SQL 腳本) 通用性強、跨版本安全;物理複製 速度快但受版本/OS/架構限制。本文詳細對比兩法操作步驟、適用場景與避坑指南。
# mysqldump 單庫
mysqldump -uroot -p db_name > db_name.sql
# mysqldump 多庫
mysqldump -uroot -p --databases db1 db2 > multi.sql
# 包含例程/觸發器/事件/鎖定/Binlog 位置 (生產標準)
mysqldump -uroot -p --databases db_name \
--routines --triggers --events \
--single-transaction --flush-logs --master-data=2 > full.sql
mysql -uroot -p -e "CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
# 方式 A:mysql 指令導入 (大檔推薦)
mysql -uroot -p db_name < db_name.sql
# 方式 B:進入 mysql shell 後 source
mysql -uroot -p db_name
SOURCE /path/to/db_name.sql;
# 壓縮檔直接導入
gunzip < db_name.sql.gz | mysql -uroot -p db_name
systemctl stop mysqldtar czf /backup/mysql_data.tar.gz /var/lib/mysqlchown -R mysql:mysql /var/lib/mysql; chmod -R 700 /var/lib/mysql風險:MySQL 大版本升級 (5.6→5.7、5.7→8.0) 嚴禁 物理複製,必須用 mysql_upgrade 或邏輯遷移。
upload_max_filesize、post_max_size、max_execution_time,大檔請改命令列。utf8mb4。NO_AUTO_CREATE_USER 等在 8.0 移除)。GROUPS, RANK 等)。mysql_native_password → caching_sha2_password)。mysql_upgrade (原地升級) 或邏輯重建。