Я работаю над своим первым проектом Django и пытаюсь подключить его к моей базе данных MySQL. Мой проект пытается забрать значения базы данных из настроек. Вот моя проблема.
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'admin',
}
}
Я удалил пароль, хост и порт на данный момент, так как я пытаюсь изолировать проблему с пользователем.
Я запускаю python manage.py diffsettings
, и результат включает в себя, явно содержащий пользователя:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'django', 'USER': 'admin', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'PASSWORD': '', 'HOST': '', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
Однако, когда я запускаю python manage.py migrate
, я получаю следующую ошибку:
django.db.utils.OperationalError: (1044, "Access denied for user ''@'localhost' to database 'django'")
Здесь видно, что пользователь отсутствует. Он показывает ''@'localhost'
вместо 'admin'@'localhost'
Странная часть в том, что имя базы данных выбирается, а пользователь - нет.
Есть идеи, что я делаю неправильно?