django.db.utils.OperationalError:fe_sendauth:没有提供密码

时间:2016-03-25 04:41:45

标签: django git postgresql operationalerror

我克隆了一个来自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

我已经搜索过这个问题,但找不到可以帮助我的解决方案。谁能告诉我问题出在哪里?

3 个答案:

答案 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