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

Грешка при изпълнение на командата psql в /docker-entrypoint-initdb.d/db_init.sh (psql:не можа да се свърже със сървъра:връзката е отказана)

Изглежда като този ангажимент счупи вашия скрипт.

Обяснение:

PostgreSQL може да приема връзки не само чрез TCP/IP, но и чрез UNIX сокет. -h localhost аргумент казва psql да използвате TCP връзки вместо UNIX сокет.

Ако погледнете текущия docker-entrypoint.sh версия, ще видите, че по време на изпълнението на скриптове в /docker-entrypoint-initdb.d PostgreSQL прослушва само UNIX сокет и регистрационният файл при стартиране казва:

LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"

Това означава, че psql -h localhost няма да се свърже с базата данни, тъй като PostgreSQL не слуша IP сокет. Трябва да използвате psql без -h localhost опция, за да го накарате да използва UNIX сокет вместо TCP връзки.

Но защо да изпълнявате psql -h localhost ръчно работи?

Ако погледнете в docker-entrypoint.sh отново ще видите, че когато всички начални скриптове се изпълняват, PostgreSQL се спряно и след това стартира отново в нормален (работещ) режим, в който слуша както UNIX, така и IP сокети:

LOG:  listening on IPv4 address "0.0.0.0", port 5432
LOG:  listening on IPv6 address "::", port 5432
LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"

Така че, когато процесът на стартиране приключи, можете да се свържете с PostgreSQL чрез TCP връзки, като по този начин влезете в контейнера и стартирате psql -h localhost успява.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да ускоря администраторските страници на Django с оценки на броя на PostgreSQL?

  2. Как да създадете уникален индекс, където редът на колоните не се взема предвид (задава?)

  3. Тестване на база данни в python, postgresql

  4. Поръчката по in view гарантира ли реда на select?

  5. Кой е най-добрият PostgreSQL GUI? Сравнение за 2021 г