Postgresql设置远程链接

安 装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf,其中 pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。下面 介绍配置的步骤:

 

1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):

  1. # TYPE DATABASE USER CIDR-ADDRESS METHOD
  2. # "local" is for Unix domain socket connections only
  3. local all all trust
  4. # IPv4 local connections:
  5. host all all 127.0.0.1/32 trust
  6. host all all 192.168.1.0/24 md5
  7. # IPv6 local connections:
  8. host all all ::1/128 trust

其中,第7条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。其中的数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问!

 

2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。将行开头都#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求

### 如何配置 PostgreSQL 以允许远程连接 为了使 PostgreSQL 支持远程连接,需要对 `postgresql.conf` 和 `pg_hba.conf` 文件进行适当调整。以下是具体的配置方法: #### 修改 PostgreSQL 主要配置文件 编辑 `postgresql.conf` 文件,将其监听地址设置为所有网络接口。这可以通过将 `listen_addresses` 参数更改为 `'*'` 来完成[^4]。 ```bash sudo nano /etc/postgresql/14/main/postgresql.conf ``` 找到以下行并修改: ```plaintext listen_addresses = '*' ``` 此更改表示 PostgreSQL 将监听来自任何 IP 地址的请求,而不仅限于本地回环地址 (localhost)。 --- #### 调整客户端认证配置 接下来,需更新 `pg_hba.conf` 文件来定义哪些主机可以访问数据库实例以及它们使用的身份验证方式[^3]。 定位至该文件路径,并添加新的条目以便接受外部设备发起的数据传输需求[^2]: ```bash sudo nano /etc/postgresql/14/main/pg_hba.conf ``` 在文件底部追加如下内容(假设目标机器拥有固定IP地址): ```plaintext host all all 0.0.0.0/0 md5 ``` 上述命令意味着允许任意 IPv4 客户端通过密码验证机制(md5)登录服务器上的每一个数据库账户。如果希望进一步限制范围,则可替换通配符(`0.0.0.0/0`)为目标子网掩码形式的具体区间值,比如仅开放给特定局域网内的计算机使用. --- #### 应用改动与防火墙设置 保存两份文档之后重启服务程序让新设定生效: ```bash sudo systemctl restart postgresql ``` 最后确认操作系统层面不存在阻止外部流量到达指定端口(默认情况下为5432)的情况。对于基于 Linux 的环境来说可能涉及 iptables 或 ufw 设置; Windows 上则应查看高级安全选项中的入站规则列表是否存在对应项[^1]. --- #### 测试连通性 利用 pgAdmin、DBeaver 等图形界面工具或者命令行实用程序尝试建立链接操作即可检验整个流程是否顺利完成预期目的。 ```python import psycopg2 try: connection = psycopg2.connect( user="your_username", password="your_password", host="192.168.239.128", port="5432", database="your_database" ) except Exception as error: print(f"Error connecting to the database: {error}") finally: if 'connection' in locals(): connection.close() ``` 以上脚本能够帮助判断 Python 程序能否成功接入远端部署好的 PG 实例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值