.sql 檔案是 MySQL 邏輯備份與遷移的標準載體。本文系統整理從環境變數設定、命令列進入、資料庫/資料表/結構匯出,到匯入執行、大檔案限制突破的完整實操流程,並針對 Windows 環境常見編碼與路徑問題給出解決方案。
Path 編輯,新增 ;C:\Program Files\MySQL\MySQL Server 5.x\bin(依實際安裝路徑調整)mysql --versionmysql -h hostname -u username -p
# 例:mysql -h localhost -u root -p
# 按 Enter 後輸入密碼(不回顯)
常用基礎指令:
| 指令 | 說明 |
|---|---|
| CREATE DATABASE dbname; | 建立資料庫 |
| USE dbname; | 切換資料庫 |
| SHOW DATABASES; | 列出所有資料庫 |
| SHOW TABLES; | 列出當前庫所有表 |
| DESCRIBE tablename; | 顯示表結構 |
在 CMD**(非 mysql 提示符)下執行:
mysqldump -h localhost -u root -p mydb > e:\mysql\mydb.sql
mysqldump -h localhost -u root -p mydb mytable > e:\mysql\mytable.sql
mysqldump -h localhost -u root -p mydb --add-drop-table > e:\mysql\mydb_stru.sql
| 參數 | 用途 |
|---|---|
| --single-transaction | InnoDB 熱備份,不鎖表 |
| --master-data=2 | 附帶 Binlog 位置註釋,利於從庫搭建 |
| --routines --triggers --events | 包含存儲過程/觸發器/事件 |
| --hex-blob | 二進制欄位十六進制導出 |
| --no-data | 僅導出結構 |
| --where="id > 1000" | 條件導出部分資料 |
mysql -h localhost -u root -p -e "CREATE DATABASE mydb2;"mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sqlmysql 互動模式下用 SOURCE 指令,避免 Shell 重導向緩衝區問題:mysql> USE mydb2; SOURCE e:/mysql/mydb2.sql;若透過 phpMyAdmin 或 PHP 腳本匯入,受限於 php.ini 三項設定:
memory_limit = 128M
upload_max_filesize = 2M ← 關鍵瓶頸
post_max_size = 8M
upload_max_filesize = 200M
post_max_size = 200M
memory_limit = 256M
修改後重啟 Apache/php-fpm。若無法改 php.ini,改用命令列 mysql 或 SOURCE 指令繞過 PHP 限制。
utf8mb4)。匯出時可加 --default-character-set=utf8mb4。SOURCE 指令建議用正斜線 e:/mysql/file.sql,避免反斜線轉義問題。掌握 mysqldump 匯出與 mysql/SOURCE 匯入雙軌操作,配合參數微調與編碼管控,即可應對從開發測試到生產遷移的各類場景。大檔案場景優先命令列,繞過 Web 層限制更穩健。