>데이터 베이스 >MySQL 튜토리얼 >다음은 기사의 핵심을 포착하는 질문 기반 제목입니다. Docker-Compose를 사용하여 내 Django 앱이 Docker의 MySQL에 연결할 수 없는 이유는 무엇입니까? 다른 변형은 다음과 같습니다. * 장고에서 MySQL로

다음은 기사의 핵심을 포착하는 질문 기반 제목입니다. Docker-Compose를 사용하여 내 Django 앱이 Docker의 MySQL에 연결할 수 없는 이유는 무엇입니까? 다른 변형은 다음과 같습니다. * 장고에서 MySQL로

Linda Hamilton
Linda Hamilton원래의
2024-10-29 05:34:311111검색

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")')

솔루션

이 문제를 해결하려면 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-compose를 사용하여 Docker 환경 내에서 Django와 MySQL 간의 안정적인 연결을 설정할 수 있습니다.

위 내용은 다음은 기사의 핵심을 포착하는 질문 기반 제목입니다. Docker-Compose를 사용하여 내 Django 앱이 Docker의 MySQL에 연결할 수 없는 이유는 무엇입니까? 다른 변형은 다음과 같습니다. * 장고에서 MySQL로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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