Не удается установить соединение между Django и MySQL [дубликат].
Я построил 2 контейнера, один для проекта с python-3.4.10 и другой для MySQL (с mysql-5.7-debian).
Когда я пытаюсь выполнить любую команду, например:
python manage.py makemigrations {name}
или python manage.py runserver 0.0.0.0:8000
она выдает мне следующую ошибку:
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL server on \'127.0.0.1\' (111 "Connection refused")')
Я буквально перепробовал все и прошел через все связанные с этим проблемы стека. Но проблема все еще сохраняется.
Когда я подключаюсь к MySQL Workbench (который установлен на моей базовой ОС: Windows 11) с запущенным контейнером MySQL, он подключается, но когда я выполняю команду python manage.py ...
на другом контейнере, он показывает мне вышеуказанную ошибку.
Не могли бы вы мне помочь? Спасибо.
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 's_db',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
docker-compose.yaml
version: '3.8'
services:
web:
image: s-compose:latest
ports:
- 8000:8000
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
volumes:
- ./s:/home/app/webapp
depends_on:
- database
database:
image: mysql:5.7-debian
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
.Dockerfile
FROM python:3.4.10
ENV Dockerhome=/home/app/webapp
RUN mkdir -p $Dockerhome
WORKDIR $Dockerhome
COPY ./sansthaonline $Dockerhome
RUN pip install -r req.txt; exit 0
EXPOSE 8000
## testing server
CMD python manage.py runserver 0.0.0.0:8000