Ali*_*356 35 windows postgresql virtual-machine
我在Windows 7中安装了PostgreSQL 9.2,我在虚拟机中安装了Windows XP,如何连接这两个数据库并允许远程访问从两个系统添加/编辑数据库?
And*_*Boc 62
要远程访问PostgreSQL数据库,必须设置两个主要的PostgreSQL配置文件:
postgresql.conf
pg_hba.conf
以下是有关如何设置它们的简要说明(请注意,以下说明仅供参考:要安全地配置机器,您必须熟悉所有参数及其含义)
首先配置PostgreSQL服务以侦听Windows 7机器中所有网络接口上的端口5432:
打开文件postgresql.conf(通常位于C:\ Program Files\PostgreSQL\9.2\data)并设置参数
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
检查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
Run Code Online (Sandbox Code Playgroud)
这样,PostgreSQL将接受来自网络192.168.1.XXX上所有主机的连接.
在Windows 7中重新启动PostgreSQL服务(Services-> PosgreSQL 9.2:右键单击并重新启动服务).在Windows XP机器上安装pgAdmin并尝试连接到PostgreSQL.
S.H*_*ahi 13
listen_addresses = '*'在postgresql.conf中设置后
编辑pg_hba.conf文件,并在文件末尾添加以下条目:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
Run Code Online (Sandbox Code Playgroud)
要查找配置文件, 此链接可能会对您有所帮助。
如果使用PostgreSql 9.5.1,请按照以下配置:
除了上述建议的答案之外(1)修改配置文件pg_hba.conf和(2)postgresql.conf以及(3)重新启动PostgreSQL服务,某些Windows计算机可能还要求在端口上允许传入TCP通信(通常5432)。
为此,您需要打开Windows防火墙并为该端口添加入站规则(例如5432)。
转到“ 控制面板\系统和安全性\ Windows Defender防火墙”>“高级设置”>“操作”(右选项卡)>“入站规则”>“新规则...”>“端口”>特定本地端口,然后键入您使用的端口,通常是5432 >((默认设置为休息并输入您想要的任何名称)
现在,尝试从客户端计算机上的pgAdmin重新连接。不需要重新启动服务。