【问题标题】:django cant access mysql docker composedjango 无法访问 mysql docker compose
【发布时间】:2020-05-20 15:07:03
【问题描述】:

这是我的 docker-compose 文件

version: '3'

services:
  djangoSql:
    restart: always
    network_mode: bridge
    container_name: djangoSql
    image: mysql
    volumes:
      - .:/code
    environment:
      MYSQL_DATABASE: test1
      MYSQL_ROOT_PASSWORD: 1234
    ports:
      - 6044:3306
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      interval: 2s
      timeout: 20s
      retries: 10


  web:
    build: .
    network_mode: bridge
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    image: django
    environment:
      WAIT_HOSTS: djangoSql:3306
      WAIT_HOSTS_TIMEOUT: 300
      WAIT_SLEEP_INTERVAL: 30
      WAIT_HOST_CONNECT_TIMEOUT: 30
    depends_on:
      - djangoSql
    links:
      - djangoSql:mysql

这是我的错误

django.db.utils.OperationalError: (1045, '无法加载插件缓存_sha2_password: /usr//usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: 无法打开共享对象文件:没有这样的文件或目录')

网址有两个 usr 我不知道为什么

这是 docker 文件

FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD ./wait-for-it.sh /code/wait-for-it.sh
ADD . /code/
CMD ["/code/wait-for-it.sh", "djangoSql:3306", "-t", "6000", "--`","python","manage.py", "runserver", "0.0.0.0:8000"]`

这是require.txt

Django>=2.0,<3.0
djangorestframework
mysqlclient
tensorflow==1.15
setuptools>=41.0.0
pandas
Keras

【问题讨论】:

  • 你的 django docker 镜像是基于什么的?
  • 这是我的要求.txt
  • Django>=2.0,=41.0.0 pandas Keras
  • 是python3.7
  • 这是我的 docker 文件

标签: mysql django docker-compose


【解决方案1】:

根据mysql official image,你需要在compose文件中将此命令添加到你的mysql服务中:

command: --default-authentication-plugin=mysql_native_password

添加此命令后不要忘记创建一个新的 mysql 镜像容器。

【讨论】:

    猜你喜欢
    • 2018-11-07
    • 2023-01-05
    • 2018-06-07
    • 2021-07-19
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多