首頁 > 資料庫 > mysql教程 > 如何確保 Docker Compose 中的 MySQL 連線就緒?

如何確保 Docker Compose 中的 MySQL 連線就緒?

Patricia Arquette
發布: 2024-12-14 11:33:17
原創
475 人瀏覽過

How to Ensure MySQL Connection Readiness in Docker Compose?

Docker-compose:確定MySQL 連線準備

在Docker Compose 中,在啟動應用程式容器之前確保資料庫連線的可用性可以是編排中的關鍵一步。為了實現這一點,healthcheck和depends_on選項提供了一個方便的解決方案。

但是,為MySQL配置有效的運作狀況檢查可能會帶來挑戰。讓我們探索查詢中提到的方法並評估它們的限制:

  • 檢查MySQL 資料目錄是否存在: 雖然這會驗證資料庫檔案是否存在,但它確實不保證MySQL 正在運作並接受連線。
  • 取得 MySQL 版本:此方法確認存在MySQL 但仍不表示已準備好連線。
  • Ping 管理員: 此操作將容器標記為健康,但不能確保資料庫完全可操作並接受客戶端請求。

解決方案在於不同的健康檢查命令:

test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
登入後複製

這個命令直接測試可用性本地主機上的MySQL 伺服器的名稱,並作為其連接準備情況的可靠指示器。透過使用此運行狀況檢查,您可以確保應用程式容器僅在 MySQL 完全初始化並可透過網路連線存取後啟動。

在Docker Compose 檔案中,您可以如下合併此運行狀況檢查:

services:
    api:
        ...
        depends_on:
          db:
            condition: service_healthy
    db:
        ...
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
            timeout: 20s
            retries: 10
登入後複製

透過此配置,api 容器將等到db 容器的健康檢查成功後再啟動,確保MySQL 準備好接受連接並最大限度地降低預啟動遷移或應用程式的風險失敗。

以上是如何確保 Docker Compose 中的 MySQL 連線就緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板