Django.db.utils.OperationalError:(2002,“无法连接到'db'(115)”上的MySQL服务器)

2024-09-29 19:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题已经被问过了,但没有一个答案对我有帮助。这是我的配置。我运行的docker由两个服务组成,一个是django的web应用程序,一个是mariadb的数据库。我可以用这个配置正常连接到本地数据库,只需在设置.py到本地主机。当我运行docker-compose up时,web服务在尝试连接到数据库后立即停止,并返回此错误。在

django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")

Dockerfile

FROM python:3.7

RUN mkdir /app

COPY requierments.txt /app/

WORKDIR /app

RUN pip install -r requierments.txt

COPY . /app/

码头工人-合成.yml

^{pr2}$

设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_backend',
        'USER': 'django',
        'PASSWORD': 'mysql1234pass',
        'HOST': 'db',
        'PORT': '3306'
    }
}

Tags: djangocomposedockerrun答案pytxtweb
2条回答

您的WEB容器在DB启动并运行之前启动,您需要使用其中一个methods等待它,或者首先用docker-compose up db手动启动数据库

确保您的db docker映像运行良好。检查正在运行的db容器的日志。我能够在我的docker compose文件中成功地使用MariaDB:

db:
image: mariadb
ports:
  - 3306:3306
environment:
  MYSQL_USER: "****"
  MYSQL_PASSWORD: "****"
  MYSQL_DATABASE: "*****"
  MYSQL_RANDOM_ROOT_PASSWORD: "yes"

相关问题 更多 >

    热门问题