繁体   English   中英

将使用 docker-compose 运行的 MySQL 数据库连接到 Django

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM