能否将PostgreSQL主机名从localhost改为IP地址?跨PC访问咨询
问题解答
把应用的数据库连接字符串设为192.168.1.1后,只要完成PostgreSQL的相关配置,PC A和PC B都能正常访问数据库,但只改连接字符串不够,需要完成以下关键步骤:
修改PostgreSQL监听地址
找到PostgreSQL安装目录下的postgresql.conf配置文件,将listen_addresses参数从默认的localhost改为*(允许所有IP访问)或指定192.168.1.1。修改后重启PostgreSQL服务,否则配置不生效。配置PostgreSQL访问权限
打开pg_hba.conf文件,添加允许同一网段主机访问的规则,比如:host all all 192.168.1.0/24 scram-sha-256这条规则允许192.168.1.0/24网段内的所有主机,以scram-sha-256认证方式访问所有数据库。如果需要更严格的权限,也可以单独添加PC A和PC B的IP规则:
host all all 192.168.1.1/32 scram-sha-256 host all all 192.168.1.10/32 scram-sha-256修改后同样需要重启PostgreSQL服务。
开放PC A的防火墙端口
在PC A的防火墙中,添加入站规则,开放PostgreSQL默认端口5432,允许来自192.168.1.0/24网段的连接请求。如果用的是Windows防火墙,可以在“高级设置”中新建端口规则,指定5432端口和允许的网段。
完成以上配置后:
- PC A上的应用使用
Host=192.168.1.1;Port=5432;Database=你的数据库名;Username=用户名;Password=密码这样的连接字符串,能正常连接数据库; - PC B访问PC A上的Web应用时,应用会以
192.168.1.1作为数据库主机地址发起连接,由于已经配置好权限和防火墙,数据库会正常响应,PC B就能通过Web应用访问数据库内容。
内容的提问来源于stack exchange,提问作者BTOM
相关产品推荐
相关产品推荐

