Подключение моей базы данных 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',
}
}