Evg*_*ova 5 python mysql django docker docker-compose
我有 docker-compose 的配置,在构建数据库步骤中,django 管理抛出错误:
django.db.utils.OperationalError:(2002,“无法连接到'127.0.0.1'(115)上的MySQL服务器”)
我认为 - 码头工人拒绝连接。
通过套接字进行的配置类似不起作用(说error connection by socket
)
Docker 撰写文件
version: '3'
services:
db:
image: mariadb:5.5
restart: always
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "bh"
MYSQL_USER: "root"
MYSQL_PASSWORD: "root"
ports:
- "3302:3306"
behealthy_dev:
build: .
container_name: behealthy_dev
expose:
- "86"
command: python manage.py runserver 0.0.0.0:80
volumes:
- /behealthy_dev/
ports:
- "86:86"
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /behealthy_dev
WORKDIR /behealthy_dev
ADD requirements.txt /behealthy_dev/
RUN pip install -r requirements.txt
ADD . /behealthy_dev/
RUN python manage.py makemigrations
RUN python manage.py migrate
RUN python manage.py collectstatic --noinput
Run Code Online (Sandbox Code Playgroud)
数据库设置(设置)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bh',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'root',
'OPTIONS': {
'sql_mode': 'traditional',
'init_command': 'SET innodb_strict_mode=1',
'charset': 'utf8mb4',
},
},
}
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?我尝试从其他堆栈答案中解决,但它对我不起作用。
在您的服务中behealthy_dev
更改 MySQL 主机
'HOST': '127.0.0.1'
Run Code Online (Sandbox Code Playgroud)
到
'HOST': 'db',
Run Code Online (Sandbox Code Playgroud)
编辑:也将其更改MYSQL_ROOT_PASSWORD: "root"
为:
`MYSQL_ROOT_PASSWORD: "rootpassword"`
Run Code Online (Sandbox Code Playgroud)
以及您的数据库设置:
'PASSWORD': 'rootpassword',
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7644 次 |
最近记录: |