У меня есть пароль к базе данных, хранящийся в файле pgpass.conf
. Я подключаюсь к базе данных из R с помощью RPostgres
, не указывая пароль, поэтому он читается из pgpass.conf
, например:
con <- dbConnect(RPostgres::Postgres(),
dbname = "dbname",
user = "username",
host = "localhost",
port = "5432")
Обычно это работает отлично, однако, когда я пытаюсь подключиться к базе данных из блестящего приложения, это не работает. Определение подключения точно такое же, как указано выше, и помещено в скрипт server.R
. Когда я запускаю приложение Shiny с аргументами по умолчанию, я получаю сообщение об ошибке:
FATAL: password authentication failed for user "username"
password retrieved from file "C:\Users\...\AppData\Roaming/postgresql/pgpass.conf"
Когда пароль явно указан в определении соединения:
con <- dbConnect(RPostgres::Postgres(),
dbname = "dbname",
user = "username",
host = "localhost",
password = "mypass",
port = "5432")
все работает.
Что еще более странно, когда для порта для блестящего установлено какое-то значение, например: shiny::runApp(port = 4000)
, соединение устанавливается без указания пароля, но ТОЛЬКО в первый раз - это означает, что когда приложение закрывается и снова открывается в том же сеансе R, ошибка происходит снова.
Я протестировал пакет «RPostgreSQL» — он тоже не работает, отличается только сообщение об ошибке:
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect postgres@localhost on dbname "dbname")
Я использую 32-битный R, но я тестировал его на 64-битном, и это было то же самое. Приложение Shiny запускалось как в браузере (Chrome), так и в Rstudio Viewer.
Вот моя информация о сеансе:
R version 3.2.2 (2015-08-14)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Polish_Poland.1250 LC_CTYPE=Polish_Poland.1250 LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C LC_TIME=Polish_Poland.1250
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RPostgres_0.1 DBI_0.3.1.9008 shiny_0.12.2
loaded via a namespace (and not attached):
[1] R6_2.1.1 htmltools_0.2.6 tools_3.2.2 rstudioapi_0.3.1 Rcpp_0.12.1.3 jsonlite_0.9.17 digest_0.6.8
[8] xtable_1.7-4 httpuv_1.3.3 mime_0.4 RPostgreSQL_0.4