postgresql: .pgpass не работает на Windows / cygwin - PullRequest
0 голосов
/ 13 февраля 2020

Я не могу получить .pgpass для работы в Windows / cygin

У меня установлен pgAdmin4 на Windows 10, psql версия 12.0.

Я используя cygwin, написание сценариев bash для выполнения различных действий с базой данных PG, установленной вместе с облачным провайдером.

Если я укажу эти переменные env в сценарии bash, все прекрасно работает:

export PGUSER=<pguser>
export PGPASSWORD=<pgpassword>
export PGHOSTADDR=<ip-address>
export PGPORT=5432

Но если вместо этого я не включу эти переменные env в сценарий bash, создаю файл .pgpass: $ HOME / .pgpass и ввожу строку типа:

hostname:port:database:username:password

и запускаю сценарий, он пытается подключиться к «localhost», как будто он не может найти файл .pgpass.


Я получаю эту ошибку:

Running: [./myscript.sql]

psql: error: could not connect to server: could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?


Я попытался указать явно в сценарии bash следующим образом:

export PGPASSFILE=$HOME/.pgpass

и все равно не работает, я получаю то же сообщение об ошибке, оно игнорируется переменная PGPASSFILE env.


Я установил права доступа к файлу .pgpass на 0600, так что это не проблема эм.

ls -l .pgpass
-rw------- 1 <user> None 49 Feb 12 23:01 .pgpass

1 Ответ

0 голосов
/ 13 февраля 2020

запустить скрипт, он пытается подключиться к «localhost», как будто он не может найти файл .pgpass.

.pgpass не сообщает libpq (что psql использует) к какому хосту подключаться. Напротив, libpq сначала определяет хост, а затем ищет этот конкретный c хост (или подстановочный знак) в .pgpass. Похоже, что сломанная вещь здесь - PGHOSTADDR, а не .pgpass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...