Подключение моей базы данных MySQL, запущенной с помощью docker-compose, к Django

Я не могу понять, как его подключить.

Когда я выполняю команду - python manage.py check --database default я получаю ошибку ниже.

**ERROR: django.db.utils.OperationalError: (1049, "Unknown database 'bears-local-db'") **

Когда я вхожу в mysql с CL, я не вижу базу данных, когда я запускаю 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',
    }
}
Вернуться на верх