我在Windows 7中安装了PostgreSQL 9.2,并且我在虚拟机中安装了Windows XP,如何连接这两个数据库并允许远程访问从两个系统添加/编辑数据库?
答案 0 :(得分:54)
为了远程访问PostgreSQL数据库,您必须设置两个主要的PostgreSQL配置文件:
postgresql.conf中
的pg_hba.conf
以下是有关如何设置它们的简要说明(请注意,以下说明仅供参考:要安全地配置机器,您必须熟悉所有参数及其含义)
首先配置PostgreSQL服务以侦听Windows 7机器中所有网络接口上的端口5432:
打开文件postgresql.conf
(通常位于C:\ Program Files \ PostgreSQL \ 9.2 \ data)并设置参数
listen_addresses = '*'
检查WindowsXP虚拟机的网络地址,并在pg_hba.conf文件中设置参数(位于postgresql.conf的同一目录中),以便postgresql可以接受来自虚拟机主机的连接。
例如,如果装有Windows XP的计算机具有192.168.56.2 IP地址,请添加pg_hba.conf
文件:
host all all 192.168.56.1/24 md5
这样,PostgreSQL将接受来自网络192.168.1.XXX上所有主机的连接。
在Windows 7中重新启动PostgreSQL服务(Services-> PosgreSQL 9.2:右键单击并重新启动服务)。在Windows XP机器上安装pgAdmin并尝试连接到PostgreSQL。
答案 1 :(得分:8)
答案 2 :(得分:6)
在 postgresql.conf
中设置listen_addresses = '*'
之后
编辑 hba_file.conf 文件 并在文件的最后添加以下条目:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
查找配置文件 this link可能会对您有所帮助。
答案 3 :(得分:4)
除了上述答案,建议(1)修改配置文件pg_hba.conf和(2)postgresql.conf以及(3)重新启动PostgreSQL服务,某些Windows计算机可能还需要传入的TCP流量允许在端口上(通常是else if
)。
为此,您需要打开Windows防火墙并为端口添加入站规则(例如5432)。
前往控制面板\系统和安全\ Windows Defender防火墙>高级设置>动作(右侧标签)>入境规则>新规则...>端口>特定的本地端口并输入您使用的端口,通常为5432 > (其余的默认设置并输入您喜欢的任何名称)
现在,尝试从客户端计算机上的pgAdmin再次连接。不需要重新启动服务。
答案 4 :(得分:2)
你必须将它添加到你的pg_hba.conf并重启你的PostgreSQL。
主持所有192.168.56.1/24 md5
这适用于VirtualBox和启用主机的适配器。如果您不使用Virtualbox,则必须替换IP地址。
答案 5 :(得分:1)
对于 PostgreSQL 13,由于某种原因,我无法对远程连接使用 scram-sha-256 加密。这奏效了。
# TYPE DATABASE USER ADDRESS METHOD
local all all scram-sha-256 # "local" is for Unix domain socket connections only
host all all 127.0.0.1/32 scram-sha-256 # IPv4 local connections:
host all all ::1/128 scram-sha-256 # IPv6 local connections
local replication all scram-sha-256 # Allow replication connections from localhost, by a user with the replication privilege.
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
host all all 0.0.0.0/0 trust # <---------- remote connections
答案 6 :(得分:0)
答案 7 :(得分:0)
这是针对您使用AWS云计算(EC2或RDS计算机)的特定情况的补充答案。
除了完成上面建议的所有操作之外,在使用AWS云计算时,您还需要以允许您访问端口的方式设置入站规则。 请检查this post,它对EC2和RDS有效。