![通过网络进行 Postgresql](https://linux22.com/image/1238443/%E9%80%9A%E8%BF%87%E7%BD%91%E7%BB%9C%E8%BF%9B%E8%A1%8C%20Postgresql.png)
我在 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 后的重要步骤。这里没有其他人提到这一点。