首页 > 数据库 > mysql教程 > 如何确保 Docker Compose 中的 MySQL 连接就绪?

如何确保 Docker Compose 中的 MySQL 连接就绪?

Patricia Arquette
发布: 2024-12-14 11:33:17
原创
473 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板