web-dev-qa-db-fra.com

django.db.utils.OperationalError: fe_sendauth: aucun mot de passe fourni

J'ai cloné un repo de github et j'y travaille. Le projet était à Django et utilisait postgres comme base de données. Ce projet est maintenant du côté de la production et je dois y apporter quelques modifications. Les spécifications de la base de données sont: 

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',
    }
}

Je veux exécuter ceci sur mon hôte local mais je ne peux pas le faire. Je reçois une erreur:

Django.db.utils.OperationalError: fe_sendauth: no password supplied

J'ai cherché ce problème mais je n'ai pas trouvé de solution qui pourrait m'aider. Quelqu'un peut-il me dire où est le problème?

14
the_unknown_spirit

Si vous souhaitez utiliser un mot de passe local sans connexion, vous devez supprimer les valeurs "Host", "PORT" et "PASSWORD".

Avec cette configuration, votre connecteur essaiera de se connecter en utilisant un socket de domaine unix qui est le seul mot de passe autorisé sans connexion autorisée par défaut dans Postgres. 

12

Je peux penser à deux solutions possibles à ce problème.

First , s'il n'y a pas de mot de passe pour la base de données, supprimez la clé PASSWORD. Par exemple.:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'project_name',
        'USER': 'admin',
        'Host': 'localhost',
        'PORT': '5432',
    }
}

Deuxièmement , s'il existe un mot de passe pour la base de données, indiquez-le dans la clé PASSWORD:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'project_name',
        'USER': 'admin',
        'PASSWORD': '<YOUR PASSWORD HERE...>',
        'Host': 'localhost',
        'PORT': '5432',
    }
}
1
Floyd