資料庫備份與遷移的核心技能。本文涵蓋命令列環境設定、登入方式、完整匯出/匯入指令、結構與資料分離匯出、大檔案突破限制等實戰內容。
Path 編輯,新增 ;你的MySQL安裝路徑\bin(如 ;C:\Program Files\MySQL\MySQL Server 8.0\bin)mysql --versionmysql -h 主機名 -u 使用者 -p
# 例:mysql -h localhost -u root -p
# 輸入密碼後進入 mysql> 提示符
常用管理指令:
CREATE DATABASE dbname;SHOW DATABASES;USE dbname;SHOW TABLES;DESCRIBE tbl_name;在 系統 CMD(非 mysql> 提示符)執行 mysqldump:
mysqldump -h localhost -u root -p mydb > e:\backup\mydb.sql
mysqldump -h localhost -u root -p mydb mytable > e:\backup\mytable.sql
mysqldump -h localhost -u root -p mydb --add-drop-table --no-data > e:\backup\mydb_struct.sql
參數說明:--add-drop-table 在 CREATE 前加 DROP IF EXISTS;--no-data 僅結構。
mysqldump -h localhost -u root -p mydb --no-create-info > e:\backup\mydb_data.sql
CREATE DATABASE mydb2;EXIT;mysql -h localhost -u root -p mydb2 < e:\backup\mydb2.sql
預設 max_allowed_packet 與 PHP 端 upload_max_filesize、post_max_size、memory_limit 限制大檔匯入。
[mysqld]
max_allowed_packet = 256M
重啟服務生效。
# Linux/Mac
split -l 10000 big.sql small_
# Windows 可用 Git Bash 或第三方工具
逐個匯入分割檔。
php.ini:upload_max_filesize=100M、post_max_size=100M、memory_limit=256Mclient_max_body_size 100M;| 參數 | 用途 |
|---|---|
--single-transaction | InnoDB 熱備份(一致性快照,不鎖表) |
--routines | 包含預存程序/函數 |
--triggers | 包含觸發器 |
--events | 包含事件排程器 |
--hex-blob | 二進位欄位用十六進位輸出 |
--compress | 網路傳輸壓縮 |
掌握這套流程,資料庫遷移、備份還原、版本控管 .sql 都能得心應手。