允许 IP 远程访问 PostgreSQL

要允许 IP 远程访问 PostgreSQL,你需要修改 PostgreSQL 的配置文件和访问控制设置。以下是具体步骤:

1. 修改 postgresql.conf 文件

首先,修改 PostgreSQL 的 postgresql.conf 文件,使 PostgreSQL 监听远程连接。

1.1. 查找并编辑 postgresql.conf

在终端中运行以下命令打开 postgresql.conf 文件:

bash
nano /opt/homebrew/var/postgresql@16/postgresql.conf

找到以下配置项:

conf
#listen_addresses = 'localhost'

修改为:

conf
listen_addresses = '*'

这个配置表示 PostgreSQL 将监听所有 IP 地址的连接。

2. 修改 pg_hba.conf 文件

pg_hba.conf 文件控制 PostgreSQL 的客户端身份验证规则,你需要在这里添加允许远程连接的规则。

2.1. 编辑 pg_hba.conf

运行以下命令打开 pg_hba.conf 文件:

bash
nano /opt/homebrew/var/postgresql@16/pg_hba.conf

在文件的末尾添加一行,允许来自指定 IP 地址的连接。例如,假设你要允许来自 192.168.1.0/24 网络的连接:

conf
host all all 192.168.1.0/24 md5
  • host: 表示允许 TCP/IP 连接。
  • all: 该条规则适用于所有数据库。
  • all: 该条规则适用于所有用户。
  • 192.168.1.0/24: 表示允许此网段的 IP 地址进行连接。你可以将它替换为你的具体 IP,或者使用 0.0.0.0/0 来允许所有 IP 访问(出于安全考虑,建议仅允许特定 IP)。
  • md5: 表示需要密码验证,使用 md5 加密方式。

3. 重启 PostgreSQL 服务

修改完成后,需要重启 PostgreSQL 服务以使更改生效:

bash
brew services restart postgresql@16

或者手动停止并启动 PostgreSQL:

bash
pg_ctl -D /opt/homebrew/var/postgresql@16 stop pg_ctl -D /opt/homebrew/var/postgresql@16 start

4. 检查防火墙设置(可选)

确保你的 macOS 防火墙或云服务器的防火墙允许 PostgreSQL 端口(默认是 5432)通过。

你可以检查当前防火墙规则,确保 PostgreSQL 端口 5432 是开放的。

5. 远程连接测试

在另一台设备上使用以下命令进行远程连接测试(替换 your-server-ip 为你的 PostgreSQL 服务器的 IP 地址):

bash
psql -h your-server-ip -p 5432 -U myuser -d mydb
posted @ 2024-10-22 16:21  Verite  阅读(2842)  评论(0)    收藏  举报