当我试图用Rails 3.2项目连接到远程PostgreSQL数据库时,我遇到了以下错误:
FATAL: no pg_hba.conf entry for host "10.0.0.3", user "projectx", database "projectx", SSL off
我在Rails上的配置如下所示:
staging:
adapter: postgresql
database: projectx
username: projectx
password: 123456
host: 10.0.0.3
encoding: utf8
template: template0
min_messages: warning
在PostgreSQL上,如下所示:
hostssl all all 0.0.0.0/0 md5
hostssl all all ::/0 md5
这两台机器都在Ubuntu 12.04上运行.
我发现有帖子说它应该自动工作,但这显然没有发生.我发现有人说libpq没有启用SSL,启用它解决了问题,但没有解释如何启用它.当我查看libpq的依赖关系时,我可以看到它依赖于一些SSL包,因此我假设SSL支持已编译.
一些帖子建议添加以下内容:
sslmode: require
或者这个:
sslmode: enabled
启用ssl模式,但对我没有效果.我读到它被默默地忽略了.
我还try 了数据库字符串方法,结果是:
staging:
adapter: postgresql
database: "host=10.0.0.3 dbname=projectx user=projectx password=123456 sslmode=require"
然后我发现了一个错误:
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
这似乎表明Rails试图连接到localhost,或者更确切地说,是本地PostgreSQL(没有),而不是10.0.0.3.
有什么 idea 吗?