Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't connect the postgreSQL with psycopg2

It's the first time that I can't find the answer about some tech problems Here's my problems:

>> 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"? 
  1. My postgreSQL is running
  2. My listeningport is 5432 for sure
  3. root@lanston-laptop:~# psql -l Password:
                                        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 

Thanks a lot!

like image 618
Lanston Avatar asked Mar 31 '11 13:03

Lanston


People also ask

Can not connect to PSQL?

First make sure PostgreSQL server has been started to remote server. If it is running and you get above error, you need to add enable TCP/IP support. By default, the PostgreSQL server only allows connections to the database from the local machine or localhost. This is a security feature.

Does psycopg2 work with python3?

The current psycopg2 implementation supports: Python 2 versions from 2.6 to 2.7. Python 3 versions from 3.2 to 3.6. PostgreSQL server versions from 7.4 to 9.6.


1 Answers

Your libpq, which is used by psycopg2 expects Postgres socket to be in /var/run/postgresql/ but when you install Postgres from source it is by default it in /tmp/.

Check if there is a file /tmp/.s.PGSQL.5432 instead of /var/run/postgresql/.s.PGSQL.5432. Try:

conn=psycopg2.connect(   database="mydb",   user="postgres",   host="/tmp/",   password="123" ) 
like image 96
Tometzky Avatar answered Oct 02 '22 00:10

Tometzky