用 Docker 建立 MySQL 測試環境!工控資料庫連線必備(WSL + PowerShell 完整指令)
要測試工控軟體(像 Codesys、weintek、InduSoft 等工控軟硬體)跟 MySQL 的連線,最快的方式就是 Docker。
不用安裝 MySQL Installer、不用設定服務、測完想刪就刪——整個環境一行指令搞定。
先搞懂觀念:Docker 在幹嘛?
你可以把 Docker 想成一個「即開即用的便當盒」:
- Image(映像檔) = 便當的「食譜」,描述這個服務長什麼樣子(例如 MySQL 8.0)
- Container(容器) = 根據食譜做出來的「那盒便當」,是真正在跑的東西
- Volume(資料卷) = 便當盒外掛的「保溫袋」,讓資料不會因為便當丟掉就消失
流程就是:拉食譜 → 開便當 → 掛保溫袋保存資料。
Step 1. 啟動 Docker Desktop
打開 Docker Desktop,確認左下角狀態燈是綠的。
💡 還沒裝 Docker Desktop?去 docker.com 下載,安裝完重開機一次就好。
Step 2. 確認 Docker 正常運作
開終端機(WSL 或 PowerShell 都可以),輸入:
docker --version
docker ps
docker ps 第一次跑應該是空的,但不報錯就代表 Docker 活著。
Step 3. 建立 MySQL Container
WSL(Linux 環境):
docker run -d \
--name my-mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=mydb \
-e MYSQL_USER=aj \
-e MYSQL_PASSWORD=aj1234 \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
mysql:8.0
PowerShell(Windows 環境):
PowerShell 的換行接續符號是反引號 `,不是 \:
docker run -d `
--name my-mysql `
-e MYSQL_ROOT_PASSWORD=my-secret-pw `
-e MYSQL_DATABASE=mydb `
-e MYSQL_USER=aj `
-e MYSQL_PASSWORD=aj1234 `
-p 3306:3306 `
-v mysql-data:/var/lib/mysql `
mysql:8.0
⚠️ 這組帳密只適合本機測試用,不要拿去正式環境。
第一次執行沒有映像檔會自動下載,看到下載進度條是正常的:

下載完、Container 建立成功後長這樣:

Step 4. 確認 MySQL 正常運行
看 Container 有沒有在跑:
docker ps
看到 my-mysql,STATUS 那欄顯示 Up xxx seconds 就成功了。

看啟動 log,確認完全就緒:
docker logs my-mysql
最後一行出現 ready for connections 就代表 MySQL 完全啟動了。

Step 5. 連線進去測試
docker exec -it my-mysql mysql -u aj -paj1234 mydb
這行指令分兩塊:
docker exec -it my-mysql— 進入my-mysql容器,開啟互動終端機mysql -u aj -paj1234 mydb— 用帳號aj、密碼aj1234,連進mydb資料庫
💡
-p跟密碼之間不能有空格,這是 MySQL CLI 的規定。寫成-p aj1234會讓 MySQL 把aj1234當資料庫名稱,然後再問你要密碼。
成功連進去的畫面:


基本測試到這裡就完成了。
停止與重新啟動
下班要關機、隔天繼續測試?停掉 Container 資料不會消失(Volume 保著):
docker stop my-mysql # 停止
docker start my-mysql # 隔天重啟
也可以在 Docker Desktop 的 Containers 選單找到 my-mysql,直接點 Start / Stop:

重啟後 Docker Desktop 的狀態燈會亮起來:

常用指令速查
docker stop my-mysql # 停止容器(資料還在)
docker start my-mysql # 重新啟動
docker restart my-mysql # 重啟
docker rm my-mysql # 刪除容器(要先 stop)
docker volume ls # 列出所有 Volume
docker volume rm mysql-data # 刪除資料卷(資料就真的沒了)
Docker 跑 MySQL 這件事,我覺得非常適合工控測試場景——環境乾淨、不污染主機、要重建一行指令就好。
唯一要注意的是:Volume 刪掉資料就真的消失了,所以測試資料如果有保留價值,記得在刪之前先 export 出來。
有踩到別的坑?歡迎底下留言告訴我,有空我來研究研究。
半桶水的
留言區
載入中...
發表留言