django - Django 总是尝试使用 root 用户连接到 Mysql
问题描述
我创建了一个 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' (using password: YES)")
**
不明白的是为什么在我的 settings.py 中谈论用户“root”的错误被明确设置为“admin”?
解决方案
正如@Willem Van Onsem提到的。删除 'USER' 键中的尾随空格。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'admin',
'HOST': 'xxx.com',
'PASSWORD': 'xxx',
'PORT': '3306',
}
}
注意:请勿共享您的数据库凭据。
推荐阅读
- python-3.x - 在 tkinter 中添加线条颜色
- python - 表示不变量的简单解释
- amazon-s3 - 从本地存储到 S3 的 Artifactory 自动迁移不会发生
- javascript - 数字正确顺序显示按钮
- android - Flutter App 无法在物理 android 设备上运行,出现 com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 错误
- javascript - 选择加载功能未在 html 中显示选项
- git - 是否有在发布期间最小化合并冲突解决的最佳实践?
- amazon-web-services - 有没有办法让其他账户可以访问 Route 53 公共托管区域?
- ansible - 将列表保存到ansible中的文件列
- python - ValueError:合并具有不相等行数的数据集vaex加入python