2012-10-14 5 views
0

J'ai tout configuré comme je le ferais dans une autre distribution (je suis un utilisateur arch, et j'ai installé opensuse sur un ordinateur de bureau).Django ne peut pas se connecter à Postgresql sur Opensuse

Comme:

  • Django et toutes les exigences il (psycopg)
  • Postgresql
  • créé un utilisateur pour mon serveur django
  • créé une base de données
  • obtenu tous les pouvoirs pour la base de données mon nouvel utilisateur

Ensuite, lorsque vous démarrez g syncdb pour commencer je reçois ce message de travail (je l'ai changé les utilisateurs etc .. dans ce fil pour l'utilisateur: question, mot de passe: mot de passe, base de données: question telle qu'elle est en réalité, avec d'autres mots):

FATAL: Ident authentication failed for user "question" 

après tapie j'ai eu l'idée de changer mon fichier pg_hba.conf (situé à: /var/lib/pgsql/data/pg_hba.conf)

C'est ce que j'ai:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   ident 
# IPv6 local connections: 
host all    all    ::1/128     ident 

mon django conf fichier contient:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'question', 
     'USER': 'question', 
     'PASSWORD': 'password', 
     'HOST': '127.0.0.1', 
     'PORT': '', 
    } 
} 

Je ne comprends pas ce que j'ai manqué ici, des idées?

+0

Avez-vous confirmé que vous vous connectez avec la même information via 'psql'? –

+0

Désolé, je n'ai pas mais je ne peux pas me connecter via les mêmes infos via psql (avec cette commande: su; su postgres; psql -U question; je reçois: psql: FATAL: base de données "question" n'existe pas, ceci est retourné après avoir tapé: créer une question utilisateur, comme postgres et obtenir un message réussi, cependant je peux me connecter si je crée une base de données appelée question mais je ne serai toujours pas capable de gérer.py syncdb) – cp151

+0

Pouvez-vous essayer manuellement? dans la base de données lorsqu'il est connecté via 'psql'? Cela ressemble à un problème de permissions. –

Répondre

1

Modifiez le fichier /var/lib/pgsql/data/pg_hba.conf et remplacez la méthode trust par md5. De cette façon, Postgres vous demandera un mot de passe.

N'oubliez pas de recharger le fichier de configuration.

+0

L'a modifié en md5 et cela ne fonctionne toujours pas. La confiance devrait accepter n'importe quelle entrée – cp151

+0

Je suppose que vous pouvez vous connecter via la ligne de commande, non? – arturhoo

+0

Veuillez également essayer de passer de 'ident' à' md5' dans la ligne '# IPv4 local connections'. – arturhoo

0

Avez-vous essayé de changer:

host all    all    127.0.0.1/32   ident 

à:

host all    all    127.0.0.1/32   md5 

Il semble que vous connectez via TCP (donc la première ligne pg_hba.confg avec "confiance" ne s'applique pas) et authentifiez via ident, ce qui nécessite des entrées dans pg_ident.conf. Vous voulez probablement "md5" ou l'une des autres options d'authentification par mot de passe.

+0

L'ai changé en md5, toujours la même erreur en essayant de syncdb – cp151

+0

Avez-vous essayé l'un des autres (mot de passe, crypte)? – Smith

+0

Ok, après avoir changé IPV4 pour faire confiance maintenant synchro. Anyidea comment je pourrais le modifier pour travailler avec md5? – cp151

Questions connexes