Невозможно подключить postgreSQL к psycopg2

Это первый раз, когда я не могу найти ответ о некоторых технических проблемах Здесь мои проблемы:

>> conn=psycopg2.connect(database="mydb", user="postgres", password="123",port=5432)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
psycopg2.OperationalError: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
</module></stdin>
  • Мой postgreSQL работает
  • Мое прослушивание - 5432.
  • root @lanston-laptop: ~ # psql -l Пароль:
List of databases
 Name | Owner | Encoding | Collation | Ctype | Access privileges 
 ---------------+----------+----------+------------+------------+-----------------------
 checkdatabase | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
 mydb | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
 postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
 template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
 | | | | | postgres=CTc/postgres
 template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
 | | | | | postgres=CTc/postgres

Спасибо большое!

4 ответа

Ваш libpq, который используется psycopg2, ожидает, что сокет Postgres будет находиться в /var/run/postgresql/, но при установке Postgres из источника по умолчанию он находится в /tmp/.

Проверьте, есть ли файл /tmp/.s.PGSQL.5432 вместо /var/run/postgresql/.s.PGSQL.5432. Попробуйте:

conn=psycopg2.connect(
 database="mydb",
 user="postgres",
 host="/tmp/",
 password="123"
)


Попробуйте изменить порт на 5433 вместо 5432


несколько лет спустя, используя EnterpriseDB 'графическую установку' на OSX 10.8 и установив psycopg2 (после связывания /Library/...dylib , как описано здесь). У меня была эта же проблема.

для меня правильная команда соединения была conn = psycopg2.connect('dbname=DBNAME user=postgres password=PWHERE host=/tmp/')


Только это решило мою проблему, сделать символическую ссылку на /tmp/.s.PGSQL.5432:

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

Благодаря Sukhjit Singh Sehra - s-postgresql-server-is-running

licensed under cc by-sa 3.0 with attribution.