【问题标题】:Django always trying to connect to Mysql using root userDjango 总是尝试使用 root 用户连接到 Mysql
【发布时间】:2020-05-08 16:04:21
【问题描述】:

我创建了一个 Dockerfile 来为一个 django 项目构建一个 docker 镜像:

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, "Access denied for user 'root'@'172.31.7.119' (使用密码: YES)")

**

不明白的是为什么在我的 settings.py 中谈论用户“root”的错误显然设置为“admin”?

【问题讨论】:

  • 'USER ' 键中有一个尾随空格。这意味着 Django 不会将其视为用户名。 (将'USER ' 更改为'USER')。
  • 是你的问题,谢谢!

标签: django


【解决方案1】:

正如 @Willem Van Onsem 所述。删除 'USER' 键中的尾随空格。

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

注意:请勿共享您的数据库凭据。

【讨论】:

    猜你喜欢
    • 2018-01-06
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2016-03-10
    • 2017-06-24
    • 1970-01-01
    • 2023-03-24
    • 2014-11-02
    相关资源
    最近更新 更多