在資料庫遷移或初始化時,常需批量執行多個 SQL 檔案。本文提供 Windows 環境下兩種實用做法:單檔直接導入與多檔 source 串聯,並附上可直接修改的批次檔範例。
建立 run_sql.bat,內容如下:
@echo off
:: 1. 指定 MySQL 安裝路徑
D:
cd D:\MySQL\MySQL Server 5.6\bin
:: 2. 設定連線參數
set db=vp
set userName=root
set password=root
:: 3. 指定要執行的 SQL 檔案
set sqlpath=E:\00.sql
:: 4. 執行導入
:: -f :遇錯誤繼續執行
:: --default-character-set=gbk :指定編碼,需與資料庫編碼一致
mysql -f -u %userName% --password=%password% %db% ^< %sqlpath% --default-character-set=gbk
:: 5. 暫停視窗方便查看結果
pause
將 00.sql 改寫為主控檔,內容僅包含 source 指令:
source E:\01.sql
source E:\02.sql
source E:\03.sql
source E:\04.sql
source E:\05.sql
再以方法一的批次檔執行 00.sql 即可依序跑完所有腳本。
gbk 改為 utf8 或 utf8mb4。set sqlpath="E:\My Project\00.sql"。PASSWORD() 函式已移除,密碼設定請改用 ALTER USER 或直接在命令列輸入。| 現象 | 可能原因 | 解決方式 |
|---|---|---|
| Access denied | 帳號/密碼錯誤或 host 不匹配 | 確認 user@host 權限,必要時 FLUSH PRIVILEGES |
| Unknown database | %db% 拼錯或未建立 | 先在 MySQL 執行 CREATE DATABASE |
| 編碼亂碼 | 導入編碼與資料庫不符 | 統一使用 --default-character-set=utf8mb4 |
善用批次檔與 source 指令,即可輕鬆實現 Windows 下 MySQL 腳本的自動化批量執行。