我有PostgreSQL 9.2安装在Windows 7中,我有虚拟机中安装的Windows XP,如何连接这两个数据库,并允许远程访问从两个系统添加/编辑数据库?
为了远程访问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服务(服务 – > PosgreSQL 9.2:右键单击并重新启动服务)。 在Windows XP机器上安装pgAdmin并尝试连接到PostgreSQL。
我使用PostgreSQL 9.5.1,请按照下面的配置:
你必须把这个添加到你的pg_hba.conf中并重新启动你的PostgreSQL。
主机全部全部192.168.56.1/24 md5
这适用于VirtualBox和仅启用主机的适配器。 如果您不使用Virtualbox,则必须更换IP地址。
除了上面的答案建议修改配置文件pg_hba.conf和postgresql.conf并重新启动PostGreSQL服务之外,在某些Windows 7计算机上,可能还需要为传入的TCP通信启用端口(例如5432),即PostGreSQL服务器可以接收。
如果您的计算机上需要这样做,则请打开Windows防火墙并为端口添加入站规则(例如5432)。 现在,请尝试从客户端计算机上的pgAdmin重新连接。