2013-05-16 3 views
2

Я сделал необходимые записи в файл .pgpass с разрешением файла установлен в 0600.Postgres пароль менее соединение не работает из сценария оболочки

Я могу подключиться к БД командной строки формы оболочки без ввода пароля.

Но когда я запускаю сценарий оболочки, который внутренне запрашивает postgres, он просит ввести пароль.

Я не могу понять, что может быть неправильным.

Вот пример сценария оболочки:

#!/bin/bash 
source $1 
psql -h $DBHOST -d $DBNAME -U $DBUSER << EOF 
     select * from students limit 10; 
EOF 

Все значения DBHost, DBNAME и DBUser идут отлично.

ответ

2

Nevermind.

Я сделал глупую ошибку. Я редактировал файл конфигурации на окнах. Таким образом, он добавил crlf в конце каждой строки. Поэтому, хотя он не был виден, он использовался при подключении к postgres.

Так в командной строке это сработало.

psql -h 192.168.1.45 -d somedbname -U $somedbuse 

Но это не так. (после файла конфигурации источника)

psql -h $DBHOST -d $DBNAME -U $DBUSER