我尝试从pgAdmin III连接到远程数据库。我创建了一个" 新服务器注册"。当我连接到数据库时,我得到"访问数据库被拒绝" 。
我设置正确。这些是我的PostgreSQL设置:
PostgreSQL客户端身份验证配置文件
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all postgres trust
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host all all 192.168.0.0/16 md5
listen_addresses = '*'
使用SSH我可以连接到数据库:
[fuiba@test]$ psql -h localhost -p 26888 -d postgres
psql (9.1.11)
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+---------+----------+---------+-------+---------------------
postgres | fuiba | UTF8 | C | C |
template0 | fuiba | UTF8 | C | C | =c/fuiba +
| | | | | fuiba=CTc/fuiba
template1 | fuiba | UTF8 | C | C | =c/fuiba +
| | | | | fuiba=CTc/fuiba
(3 rows)
我做错了什么?任何帮助将受到高度赞赏。谢谢!
ps:我在Windows 7上运行pgAdmin III,在Linux CentOS上运行PostgreSQL。
答案 0 :(得分:6)
pgAdmin从另一台主机连接到PostgreSQL,而不是通过SSH登录到数据库服务器。您的pg_hba.conf
中未提及错误消息中提到的IP地址(以93.39开头)。
将运行pgAdmin的主机的公共IP地址(以93.39开头的地址)添加到pg_hba.conf
或通过SSH隧道连接。注意在修改pg_hba.conf
后重新加载PostgreSQL的配置或重新启动PostgreSQL。
答案 1 :(得分:1)
我曾经为此努力过,它通过更改pg_hba.conf
中条目的IP掩码起作用,但我不记得了,而且每个网络的配置都不同。关键是你很可能在其中一个条目中出错。 Here,他们甚至指出错误消息是对哪个条目is wrong的提示。如果它们确实是正确的,我会检查auth-method(例如,查看我的密码是否作为MD5哈希传递)。
我希望这可以帮助你=)