我試圖在 aws ec2 機器(ubuntu)上運行 django 網站。我在 aws RDS 上運行的 postgresql 資料庫
當我運行 $python manage.py runserver 時,它會拋出這個錯誤:
django.db.utils.OperationalError: connection to server at "xxxxx.xxxxx.us-east-2.rds.amazonaws.com" (xxx.xx.xx.xxx), port 5432 failed: FATAL: password authentication failed for user "ubuntu"
基本上 django 嘗試使用 ubuntu 用戶而不是 settings.py 中的 postgres 用戶連接資料庫
我的設定.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('NAME'),
'USER': config('USER'),
'PASSWORD':config('PASSWORD'),
'HOST':config('HOST')
#'HOST':'localhost'
}
}
.env 檔案:
SECRET_KEY=xxxx
DEBUG=True
HOST=xxx.xxx.us-east-2.rds.amazonaws.com
NAME=xxxx
USER=postgres
PASSWORD=xxxxxx
我的密碼有特殊的特殊字符“#”
uj5u.com熱心網友回復:
Linux 發行版通常使用該$USER變數來指定用戶的名稱,而不是資料庫的名稱。
我建議使用$DB_USER或類似的東西,所以:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD':config('DB_PASSWORD'),
'HOST':config('DB_HOST')
}
}
然后配置:
SECRET_KEY=xxxx
DEBUG=True
DB_HOST=xxx.xxx.us-east-2.rds.amazonaws.com
DB_NAME=xxxx
DB_USER=postgres
DB_PASSWORD=xxxxxx
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/366094.html
標籤:Python 姜戈 PostgreSQL的 psycopg2
