[英]Connecting my MySQL database ran with docker-compose to Django
我不知道如何连接它。
当我运行命令时 - python manage.py check --database default
我收到以下错误。
ERROR: django.db.utils.OperationalError: (1049, "Unknown database 'bears-local-db'")
当我使用 CL 登录到 mysql 时,我在运行 show databases 时看不到数据库;
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bears-local-db',
'USER': 'user',
'PASSWORD': 'pass',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
services:
local-db:
image: mysql:8.0
container_name: local-db
ports:
- 3308:3306
# - ${MYSQL_OUTER_PORT}:${MYSQL_INNER_PORT}
network_mode: host
environment:
MYSQL_ROOT_PASSWORD: 'password'
MYSQL_USER: 'user1'
MYSQL_DATABASE: bears-local-db
volumes:
- ./mysql:/var/lib/mysql
我花了 5 个错误才达到这一点,所以我没有尝试太多,而是弄乱了 django 设置。
删除network_mode
指令,包装您的端口,并正确设置用户密码。 (需要 ROOT_PASSWORD 变量)。
version: "3.9"
services:
db:
container_name: local-db
image: mysql:8.0
environment:
MYSQL_USER: 'user1'
MYSQL_PASSWORD: 'password'
MYSQL_ROOT_PASSWORD: 'rootpassword'
MYSQL_DATABASE: bears-local-db
volumes:
- ./mysql:/var/lib/mysql
ports:
- "3308:3306"
在 Django 设置中,您使用了错误的username
,而且您的用户没有登录密码。 并指向您的服务可用的错误端口。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bears-local-db',
'USER': 'user1',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '3308',
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.