gpt4 book ai didi

mysql - Docker-Compose 无法连接到 MySQL

转载 作者:行者123 更新时间:2023-11-29 04:14:44 27 4
gpt4 key购买 nike

我正在尝试使用 docker 将 Django 项目与 MySQL 连接。

我在升级 docker-compose 时遇到问题。它说下一个错误:

super(Connection, self).init(*args, **kwargs2) django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)")

我正在使用端口 3307,我应该在本地创建第一个新数据库模式吗?或者我该怎么做,因为我的默认端口是 3306,但如果我尝试使用它,它会说它很忙。

我的代码在这里:

docker 文件


FROM python:3.7
ENV PYTHONUNBUFFERED 1
ENV LANG=C.UTF-8
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN apt-get update
RUN pip install -r requirements.txt
ADD . /code/


Docker-compose


version: '2'

services:
app:
container_name: container_app
build:
context: .
dockerfile: Dockerfile
restart: always
command: bash -c "python3 manage.py migrate && python manage.py shell < backend/scripts/setup.py && python3 manage.py runserver 0.0.0.0:8000"
links:
- db
depends_on:
- db
ports:
- "8000:8000"
db:
container_name: container_database
image: mariadb
restart: always
environment:
MYSQL_ROOT_HOST: 'host.docker.internal'
MYSQL_DATABASE: 'container_develop'
MYSQL_USER: 'root'
MYSQL_PASSWORD: 'password'
MYSQL_ROOT_PASSWORD: 'password'
ports:
- "3307:3307"

设置.py:


DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_develop',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'db',
'PORT': 3307,
'CHARSET': 'utf8',
'COLLATION': 'utf8_bin',
'OPTIONS': {
'use_unicode' : True,
'init_command': 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',
},
}
}

问题是我在任何地方都没有数据库,所以我在本地使用它,我是否必须将数据库上传到服务器然后使用服务器提供给我的端口?有什么办法可以从 docker 本地使用它吗?还是安装到docker?所以我可以将该 docker 分享给 friend ,他可以使用相同的数据库吗?

最佳答案

在“db”部分,在你的 docker-compose 中:

ports:
- "3307:3306"

关于mysql - Docker-Compose 无法连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58398715/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com