我在 Windows 7 64 位下的 R 2.15.2 上使用 RPostgreSQL 0.4 库(在 R 2.15.3 上编译)与 PostgreSQL 接口。当连接到本地主机上的我的 PostgreSQL 数据库时,这工作正常。我正在尝试让我的 R 代码与 Heroku 上的远程 PostgreSQL 数据库一起运行。我可以从我机器上的 psql 命令 shell 连接到 Heroku 的 PostgreSQL 数据库,并且连接没有问题。我收到消息:
psql (9.2.3, server 9.1.9)
WARNING: psql version 9.2, server version 9.1.
Some psql features might not work.
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
显然,psql 使用 SSL 进行连接。但是,当我尝试使用 RPostgreSQL 库例程 dbConnect() 进行连接时,使用 dname=、host=、port=、user=、password= 提供完全相同的凭据时,连接失败并出现以下问题:
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect <user>@<hostname> on dbname <dbname>)
Calls: source ... .valueClassTest -> is -> is -> postgresqlNewConnection -> .Call
Execution halted
我知道如果您想远程访问 Heroku 的数据库,Heroku 坚持使用 SSL 连接,因此 R 接口例程 dbConnect() 似乎没有尝试使用 SSL。我还能做些什么来让 Heroku 上从 R 到 PostgreSQL 的远程连接正常工作吗?