通过网络进行 Postgresql

通过网络进行 Postgresql

我在 192.168.0.102:5432 上运行 PostgreSQL 服务器。 PostgreSQL 配置文件有这一行:

listen_addresses = '*'

配置文件有这个:

host    all         all         127.0.0.1/32          trust

我有相同的 Rails 应用程序配置/数据库.yml

development:
  adapter: postgresql
  host: 192.168.0.102
  port: 5432
  encoding: unicode
  database: test
  pool: 5
  username: test
  password:

但是当我运行 rake db:migrate 时我得到了(我从 192.168.0.100 运行它)

FATAL:  no pg_hba.conf entry for host "192.168.0.100", user "test", database "postgres", SSL on
FATAL:  no pg_hba.conf entry for host "192.168.0.100", user "test", database "postgres", SSL off
...

谁能帮忙?

答案1

很明显您没有权限从该IP联系服务器。

完全的有关 pg_hba.conf 的文档在这里。你只需要为你的主机添加 md5 身份验证

您可能需要的是:

host all all 192.168.0.100/32 md5

是的,我基本上复制了上面的答案,但由于原始错误是“测试”用户试图访问“postgres”数据库,告诉他将其设置为“测试测试”只会导致相同的错误消息。将其设置为“全部全部”将允许所有角色访问所有数据库(前提是他们可以进行身份​​验证),这可能对开发更有用。

答案2

很明显您没有权限从该IP联系服务器。

完全的有关 pg_hba.conf 的文档在这里。您只需为您的主机添加 md5 身份验证(并且只允许“测试”数据库和“测试”用户)。

您可能需要的是:

host test test 192.168.0.100/32 md5

答案3

这是一个老问题,但是你重启了 postgresql 服务器吗?这是编辑 pg_hba.conf 后的重要步骤。这里没有其他人提到这一点。

相关内容