用 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
⚠️ 這組帳密只適合本機測試用,不要拿去正式環境。

第一次執行沒有映像檔會自動下載,看到下載進度條是正常的:

mysql-docker-setup-01.png

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

mysql-docker-setup-02.png


Step 4. 確認 MySQL 正常運行

看 Container 有沒有在跑:

docker ps

看到 my-mysql,STATUS 那欄顯示 Up xxx seconds 就成功了。

mysql-docker-setup-03.png

看啟動 log,確認完全就緒:

docker logs my-mysql

最後一行出現 ready for connections 就代表 MySQL 完全啟動了。

mysql-docker-setup-04.png


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 當資料庫名稱,然後再問你要密碼。

成功連進去的畫面:

mysql-docker-setup-07.png

mysql-docker-setup-08.png

基本測試到這裡就完成了。


停止與重新啟動

下班要關機、隔天繼續測試?停掉 Container 資料不會消失(Volume 保著):

docker stop my-mysql   # 停止
docker start my-mysql  # 隔天重啟

也可以在 Docker Desktop 的 Containers 選單找到 my-mysql,直接點 Start / Stop:

mysql-docker-setup-05.png

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

mysql-docker-setup-06.png


常用指令速查

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 出來。

有踩到別的坑?歡迎底下留言告訴我,有空我來研究研究。

留言區

載入中...

發表留言