>  기사  >  데이터 베이스  >  포트와 컨테이너 이름이 올바른데도 Docker Compose의 Django 앱이 MySQL에 연결할 수 없는 이유는 무엇입니까?

포트와 컨테이너 이름이 올바른데도 Docker Compose의 Django 앱이 MySQL에 연결할 수 없는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-31 02:10:29906검색

Why is my Django app in Docker Compose unable to connect to MySQL, even though I have the correct port and container name?

Docker Compose에서 Django-MySQL 연결 실패 문제 해결

이 글에서는 Django와 MySQL 간의 연결 설정 문제를 다룹니다. Docker Compose를 사용하여 Docker 컨테이너 내에서. 질문에 설명된 대로 컨테이너를 구성했음에도 불구하고 사용자에게 다음 오류가 발생합니다.

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

철저한 문제 해결 후 사용자는 근본 원인과 해결 방법을 발견했습니다. 중요한 통찰력은 다음과 같습니다.

핵심 사항:

  • 포트 일관성 확인: Django 설정에 지정된 포트 번호를 확인하세요. 파일은 MySQL 컨테이너에 의해 노출된 포트 번호와 일치합니다. 이 경우 포트는 3302가 아닌 3306이어야 합니다.
  • HOST에 컨테이너 이름 사용: 컨테이너의 IP 주소를 사용하는 대신 컨테이너 이름을 Django 데이터베이스의 HOST 값으로 지정합니다. 구성.

업데이트된 Docker Compose 구성:

services:
  db:
    ...
    ports:
      - "3302:3306"
  web:
    ...
    command: python3 manage.py runserver 0.0.0.0:6001
    ...
    volumes:
      - .:/djcode
    ports:
      - "6001:6001"
    depends_on:
      - db

업데이트된 Django 설정 파일:

DATABASES = {
    'default': {
        ...
        'HOST': 'db',
        'PORT': '3306',
        ...
    }
}

추가 팁:

  • Django를 실행하기 전에 check_db.py 스크립트를 활용하여 MySQL 포트가 열려 있는지 확인하세요.
  • 빌드하려면 제공된 Dockerfile을 참조하세요. Django-Py35 이미지.
  • 추가 통찰력을 얻으려면 사용자의 GitHub 저장소에 대한 자세한 내용을 살펴보세요.

이러한 변경 사항을 구현함으로써 사용자는 Docker에서 Django와 MySQL 간의 연결을 성공적으로 설정했습니다. 컨테이너, "MySQL 서버에 연결할 수 없습니다" 오류를 해결합니다.

위 내용은 포트와 컨테이너 이름이 올바른데도 Docker Compose의 Django 앱이 MySQL에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.