Il me semble avoir correctement installé PostgreSQL 9.5.5. et Psycopg2 sur Ubuntu 16.04, et peuvent se connecter via:
Sudo -u postgres psql
Si j'émets alors \conninfo
, J'obtiens ce qui suit:
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
Je devrais sûrement être en mesure de me connecter via psycopg2 de la même manière que montré ici , mais le script:
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect("dbname=postgres user=postgres")
conn.close()
donne moi:
psycopg2.OperationalError: FATAL: Peer authentication failed for user "postgres"
Je ne veux que PostgreSQL pour un usage personnel, donc je ne veux pas activer l'authentification TCP.
Comment utiliser correctement l'authentification de pair avec l'utilisateur "postgres" dans Psycopg2?
L'authentification par les pairs fonctionne en comparant le nom d'utilisateur Postgres dans votre chaîne de connexion au nom de l'utilisateur Linux qui exécute le script.
Essayez d'exécuter votre script Python avec Sudo -u postgres
.
Vous devez fournir l'hôte
conn = psycopg2.connect("dbname='template1' user='dbuser' Host='localhost' password='dbpass'")
C'est en quelque sorte à quoi devrait ressembler votre appel.
!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database="postgres", user="postgres", password="postgres", port=5432)
conn.close()