Django всегда пытается подключиться к Mysql с использованием root пользователя - PullRequest
0 голосов
/ 08 мая 2020

Я создал Dockerfile для создания образа docker для django Project:

FROM python:3.6

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        postgresql-client \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app

COPY requirements.txt ./

RUN pip install -r requirements.txt

COPY shop /usr/src/app


RUN python manage.py migrate


EXPOSE 8000

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

И в моем settings.py у меня есть это:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER ': 'admin',
        'HOST': 'mydatabase.eu-west-3.rds.amazonaws.com',
        'PASSWORD': 'adminadmin',
        'PORT': '3306',
    }
}

Теперь при создании изображения у меня возникает эта ошибка:

**

django .db.utils.OperationalError: (1045, «Доступ запрещен для пользователя 'root '@' 172.31.7.119 '(с использованием пароля: ДА) ")

**

Не понимаю, почему ошибка говорит о пользователе« root » в то время как в моем settings.py он явно установлен на "admin"?

1 Ответ

0 голосов
/ 08 мая 2020

Как @ Виллем Ван Онсем упоминается. Удалите конечный пробел в ключе «USER».

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'admin',
        'HOST': 'xxx.com',
        'PASSWORD': 'xxx',
        'PORT': '3306',
    }
}

Примечание. НЕ РАЗДЕЛЯЙТЕ свои учетные данные базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...