【发布时间】:2021-06-16 06:04:59
【问题描述】:
我看到了这个问题的多个解决方案,但我仍然无法取得进展,因此发布了这个问题 我有 react+django+mysql 应用程序,我想将它部署到 docker 中,但是当我尝试做我的 sql 映像时没有创建,它说 db uses and image, skipping。 但我看到没有为mysql创建图像(它有一个但我强制删除,所以它可以创建新的),我尝试了here的解决方案并尝试在命令下运行
docker 运行 mysql -h 127.0.0.1 -P 3306
但它要求我提供密码、root 密码等,我出了什么问题? 以下是我的日志
PFb 我的 docker-compose.yaml
version: '3.2'
services:
db:
image: mysql:8.0
ports:
- '3302:3306'
environment:
MYSQL_DATABASE: 'motor_vehicle_collision'
MYSQL_USER: 'creditshelf_user'
MYSQL_PASSWORD: '12345678'
MYSQL_ROOT_PASSWORD: '12345678'
networks:
- db-net
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/motor_vehicle_crash
ports:
- "5000:8000"
depends_on:
- db
frontend:
restart: always
command: npm start
container_name: front
build:
context: ../../../react code/collision-UI/collision-info
dockerfile: Dockerfile
ports:
- "3000:3000"
stdin_open: true
depends_on:
- web
networks:
- db-net
networks:
db-net:
driver: bridge
下面是我的python项目Dockerfile
FROM python:3.8
ENV PYTHONUNBUFFERED 1
RUN mkdir /collision_bike_info
WORKDIR /collision_bike_info
ADD requirements.txt /collision_bike_info/
RUN pip install -r requirements.txt
ADD . /collision_bike_info/
在我的 settings.py 下方
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'motor_vehicle_collision',
'USER': 'creditshelf_user',
'PASSWORD': '12345678',
'HOST': 'localhost',
'PORT' : '3306'
# 'NAME': BASE_DIR / 'db.sqlite3',
}
}
解决方案:
下面的答案对我有用,但是我现在遇到了不同的问题,我的 sql 说
(1045, '插件缓存_sha2_password 无法加载: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: 无法打开共享对象文件:没有这样的文件或目录')
从谷歌我知道这是由于新的 mysql 版本(8.0 以后)所以我需要降级我的 sql 映像或者我需要为我的用户更改密码策略,我如何更改我的 sql 用户的策略码头工人? 如果我降级它说 unkow host db f0r mysql,我该怎么办?
【问题讨论】:
-
您能否在设置文件中包含
DATABASES部分? -
添加,请看
标签: mysql django docker docker-compose