我克隆了一个来自github的回购并正在努力。该项目在django并使用postgres作为数据库。该项目现在处于生产阶段,我需要对其进行一些更改。数据库规范是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
# Or path to database file if using sqlite3.
'NAME': 'project_name',
'USER': 'admin',
'PASSWORD': '',
# Empty for localhost through domain sockets or '127.0.0.1'
# for localhost through TCP.
'HOST': 'localhost',
'PORT': '5432',
}
}
我想在我的本地主机上运行它,但我无法。我收到了错误:
django.db.utils.OperationalError: fe_sendauth: no password supplied
我已经搜索过这个问题,但找不到可以帮助我的解决方案。谁能告诉我问题出在哪里?
答案 0 :(得分:14)
如果您想使用本地密码减去连接,则需要删除值“HOST”,“PORT”和“PASSWORD”。
使用此配置,您的连接器将尝试使用unix域套接字进行连接,该套接字是Postgres中默认允许的唯一允许密码连接
答案 1 :(得分:1)
我可以想到两个可能解决这个问题的方法。
首先,如果数据库没有密码,请删除PASSWORD
密钥。 E.g:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'project_name',
'USER': 'admin',
'HOST': 'localhost',
'PORT': '5432',
}
}
第二,如果有数据库密码,请在PASSWORD
密钥中提供:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'project_name',
'USER': 'admin',
'PASSWORD': '<YOUR PASSWORD HERE...>',
'HOST': 'localhost',
'PORT': '5432',
}
}
答案 2 :(得分:1)
也许是愚蠢的事情。但是对我来说,问题是postgres实际上并没有运行。因此,请始终检查它是否正在运行。
在Linux中:
sudo service postgresql status