PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:Защо psql не може да се свърже със сървъра?

Грешката гласи, че помощната програма psql не може да намери сокета, за да се свърже с вашия сървър на база данни. Или нямате услугата за база данни, работеща във фонов режим, или сокетът се намира другаде, или може би pg_hba.conf трябва да се коригира.

Стъпка 1:Проверете дали базата данни работи

Командата може да варира в зависимост от вашата операционна система. Но на повечето *ix системи би работило следното, ще търси postgres сред всички работещи процеси

ps -ef | grep postgres

В моята система, mac osx, това изплюва

501   408     1   0  2Jul15 ??         0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log

Последната колона показва командата, използвана за стартиране на сървъра, и опциите.

Можете да разгледате всички налични опции за стартиране на postgres сървъра, като използвате следното.

man postgres

От там ще видите, че опциите -D и -r са съответно datadir &logfilename .

Стъпка 2:Ако услугата postgres работи

Използвайте find за търсене на местоположението на сокета, което трябва да е някъде в /tmp

sudo find /tmp/ -name .s.PGSQL.5432

Ако postgres работи и приема връзки на сокета, горното трябва да ви каже местоположението на сокета. На моята машина се оказа:

/tmp/.s.PGSQL.5432

След това опитайте да се свържете чрез psql, като използвате изрично местоположението на този файл, напр.

psql -h /tmp/ dbname

Стъпка 3:Ако услугата работи, но не виждате сокет

Ако не можете да намерите сокета, но видите, че услугата работи, проверете дали файлът pg_hba.conf позволява локални сокети.

Прегледайте до datadir и трябва да намерите pg_hba.conf файл.

По подразбиране в долната част на файла трябва да видите следните редове:

# "local" is for Unix domain socket connections only
local       all       all       trust

Ако не го виждате, можете да промените файла и да рестартирате услугата postgres.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 начина за изброяване на всички тригери в PostgreSQL база данни

  2. ClassNotFoundException с PostgreSQL и JDBC

  3. Изберете Номер на ред в postgres

  4. Как да използвам Postgres JSONB тип данни с JPA?

  5. Актуализации на инструментите за тестване на PostgreSQL с архив за сравнителни показатели