django.db.db.ss.Operation Error: (2002, "'db'의 MySQL 서버에 접속할 수 없습니다(115)"
이것은 이미 물어봤지만, 어떤 대답도 나에게 도움이 되지 않았다.이게 제 설정입니다.docker-compose는 django의 웹 앱과 mariadb의 데이터베이스라는 두 가지 서비스로 실행하고 있습니다.이 정확한 구성으로 로컬 DB에 정상적으로 연결할 수 있지만 settings.py의 호스트만 localhost로 변경할 수 있습니다.내가 달릴 때docker-compose up데이터베이스에 접속하려고 하면 즉시 웹 서비스가 중지되어 이 오류가 반환됩니다.
django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")
도커 파일
FROM python:3.7
RUN mkdir /app
COPY requierments.txt /app/
WORKDIR /app
RUN pip install -r requierments.txt
COPY . /app/
docker-param.yml
version: '3'
services:
db:
image: mariadb:10.2
expose:
- 3306
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: 'django_backend'
MYSQL_USER: 'django'
MYSQL_PORT: '3306'
MYSQL_PASSWORD: 'mysql1234pass'
MYSQL_ROOT_PASSWORD: 'password'
web:
build: .
image: backendblockchain_web
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
links:
- db
command:
- /bin/bash
- -c
- |
sleep 10
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000
설정.화이
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_backend',
'USER': 'django',
'PASSWORD': 'mysql1234pass',
'HOST': 'db',
'PORT': '3306'
}
}
당신의.WEB컨테이너는 DB가 가동되기 전에 시작됩니다.다음 방법 중 하나를 사용하거나 먼저 DB를 수동으로 시작해야 합니다.docker-compose up db
db 도커 이미지가 정상적으로 실행되고 있는지 확인합니다.실행 중인 DB 컨테이너의 로그를 확인합니다.도커 컴포지트 파일에서 MariaDB를 정상적으로 사용할 수 있습니다.
db:
image: mariadb
ports:
- 3306:3306
environment:
MYSQL_USER: "****"
MYSQL_PASSWORD: "****"
MYSQL_DATABASE: "*****"
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
파티에는 조금 늦었지만 포트에 접속하는 경우33060좌현으로 변경하다3306.
두 개의 포트가 노출되는 걸 알아채는데 꼬박 한 시간이 걸렸어요
언급URL : https://stackoverflow.com/questions/58547120/django-db-utils-operationalerror-2002-cant-connect-to-mysql-server-on-db
'programing' 카테고리의 다른 글
| Vuex - 변환 후 상태 가져오기 (0) | 2023.02.03 |
|---|---|
| 테이블에서 데이터를 전치 형식으로 검색할 수 있습니까? (0) | 2023.02.03 |
| 사전 개체의 길이를 확인하는 중입니다. (0) | 2023.02.03 |
| MariaDB의 Qcache_hits와 Com_select가 함께 증가합니다. (0) | 2023.02.03 |
| 하위 쿼리에서 열을 두 개 이상 선택할 수 없는 이유는 무엇입니까? (0) | 2023.02.03 |