首页 > 数据库 > mysql教程 > 这是一个基于问题的标题,它抓住了文章的精髓: 为什么我的 Django 应用程序无法使用 Docker-Compose 连接到 Docker 中的 MySQL? 以下是一些其他变体: * Django 到 MySQL

这是一个基于问题的标题,它抓住了文章的精髓: 为什么我的 Django 应用程序无法使用 Docker-Compose 连接到 Docker 中的 MySQL? 以下是一些其他变体: * Django 到 MySQL

Linda Hamilton
发布: 2024-10-29 05:34:31
原创
1072 人浏览过

Here's a question-based title that captures the essence of the article:

Why Can't My Django App Connect to MySQL in Docker Using Docker-Compose? 

Here are some other variations:

* Django to MySQL in Docker: Troubleshooting Connection Errors with dock

无法使用 Docker-Compose 在 Docker 中将 Django 连接到 MySQL

尝试使用 Docker 环境中的 Django 和 MySQL 之间建立连接docker-compose 可能会导致以下错误:

django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL
  server on \'mariadb55\' (111 "Connection refused")')
登录后复制

解决方案

要解决此问题,确保在 docker-compose 中指定的端口和主机至关重要Django 设置文件与 docker-compose.yml 文件中的实际配置保持一致。

解决问题的步骤:

  1. 在settings.py中将主机设置为“db”,端口设置为“3306”:

    • 'HOST': 'db',
    • 'PORT': '3306 ',
  2. 调整 docker-compose.yml 文件:

    • 确保数据库服务暴露的端口是 3306。
    • 链接 Django 和数据库服务时使用 db 作为主机。
  3. 激活检查开放端口:

    • 向 docker-compose.yml 添加额外命令以验证指定端口是否可访问。

示例 docker-compose .yml 文件:

version: '3'

services:
  db:
    image: mariadb:5.5
    restart: always
    environment:
      - MYSQL_HOST=localhost
      - MYSQL_PORT=3306
      - MYSQL_ROOT_HOST=%
      - MYSQL_DATABASE=test
      - MYSQL_USER=belter
      - MYSQL_PASSWORD=belter_2017
      - MYSQL_ROOT_PASSWORD=123456_abc
    volumes:
      - /home/belter/mdbdata/mdb55:/var/lib/mysql
    ports:
      - "3302:3306"
  web:
    image: onlybelter/django_py35
    command: /bin/sh -c "python check_db.py --service-name mysql --ip db --port 3306"
    volumes:
      - .:/djcode
登录后复制

其他提示:

  • 从 Django 容器内连接到 MySQL 时使用 db 作为主机(使用mysql -h db -p ... 命令)。
  • 通过运行 nmap -p 3306 localhost 检查 3306 是否可用。
  • 使用以下命令验证 Django 和数据库容器是否正常运行: docker-compose ps.

按照以下步骤,您可以在 Docker 环境中使用 docker-compose 在 Django 和 MySQL 之间建立稳定的连接。

以上是这是一个基于问题的标题,它抓住了文章的精髓: 为什么我的 Django 应用程序无法使用 Docker-Compose 连接到 Docker 中的 MySQL? 以下是一些其他变体: * Django 到 MySQL的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板