PostgreSQL 9.5.5を正しくインストールしたようです。そしてUbuntu 16.04上のPsycopg2、そして経由でログインすることができます:
Sudo -u postgres psql
次に\conninfo
、私は以下を得ます:
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
確かに、示されているのと同じ方法でpsycopg2経由で接続できるはずです here が、スクリプトは次のとおりです。
#!/usr/bin/python
import psycopg2
conn = psycopg2.connect("dbname=postgres user=postgres")
conn.close()
私に与える:
psycopg2.OperationalError: FATAL: Peer authentication failed for user "postgres"
私はPostgreSQLを個人的に使用したいだけなので、TCP認証を有効にしません。
Psycopg2のユーザー「postgres」でピア認証を正しく使用するにはどうすればよいですか?
ピア認証は、接続文字列のPostgresユーザー名を、スクリプトを実行しているLinuxユーザーの名前と比較することで機能します。
PythonスクリプトをSudo -u postgres
で実行してみてください。
ホストを提供する必要があります
conn = psycopg2.connect("dbname='template1' user='dbuser' Host='localhost' password='dbpass'")
これは、ヨルコールがどのように見えるべきかということです。
!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database="postgres", user="postgres", password="postgres", port=5432)
conn.close()