postgresql无法远程登录(设置远程登陆的三点注意事项)

本文介绍了解决跨机器访问PostgreSQL数据库的问题。需调整三个设置:确保A机器的Windows防火墙为5432端口添加例外;在postgresql.conf中设置监听地址与端口;在pg_hba.conf中指定信任的IP地址。
设置远程登陆的三点注意事项
看完下文我恍然知道,原来是我的windows防火墙没有关闭开启着却没有添加那个例外,导致之前在配置文件中配置的总是不生效。
也就是说要修改三处地方!!!

[quote]
由于postgresql没有正确设置允许的IP导致的,在

A机器安装PostgreSQL,默认端口5432
想实现B机器通过远程连接A机器的PostgreSQL服务。
  
[color=darkred] 1.如果A机器启动Windows防火墙,则在“例外”中“添加端口”加上5432端口。 [/color]
  
[color=darkred]2.在postgresql.conf中的修改
listen_addresses = '*'
port = 5432 [/color]
  
[color=darkred]3.在pg_hba.conf中添加
host all all 192.168.1.2/32 trust [/color]
  
在B机器上用phpPgAdmin试试连接A机器192.168.1.1[/quote]
要配置 PostgreSQL 允许远程登录并使用 ident 认证,需要对 PostgreSQL 的两个关键配置文件进行修改:`pg_hba.conf` 和 `postgresql.conf`。 ### 修改 `pg_hba.conf` 该文件定义了客户端认证规则。为了允许远程登录并使用 ident 认证,需添加或修改以下条目: ``` host all all 0.0.0.0/0 ident ``` 此规则表示允许所有远程主机通过 ident 认证方式连接到数据库的所有数据库和用户。如果希望限制访问的 IP 范围,可以将 `0.0.0.0/0` 替换为具体的子网或 IP 地址段。 ### 修改 `postgresql.conf` 确保 PostgreSQL 监听所有网络接口,以便接受远程连接请求。找到以下行并取消注释(如果被注释): ``` listen_addresses = '*' ``` 此设置使 PostgreSQL 监听所有可用的网络接口,从而支持远程连接。 ### 启动 PostgreSQL 服务 在完成上述配置后,需要启动 PostgreSQL 服务以应用更改。可以通过以下命令启动数据库服务: ```bash su - postgres /app/postgresql/bin/pg_ctl -D /app/postgresql/data -l /app/postgresql/log/logfile start ``` ### 验证远程连接 使用 `psql` 命令验证是否能够成功连接到 PostgreSQL 数据库。例如: ```bash psql -h <database-host> -U postgres -d postgres ``` 其中 `<database-host>` 是 PostgreSQL 服务器的 IP 地址或域名。 ### Ident 认证的工作机制 Ident 认证依赖于客户端机器上的 ident 服务(通常是 `auth` 服务)。PostgreSQL 会向客户端机器发送一个请求,以确定当前连接用户的操作系统用户名,并将其与数据库中的用户名进行比对。如果匹配,则认证成功;否则失败。 确保客户端系统上运行了 ident 服务,并且防火墙允许 TCP 端口 113 的通信,这是 ident 协议使用的默认端口。 ### 注意事项 - Ident 认证通常用于本地网络环境,在公共互联网中较少使用。 - 如果客户端和服务器不在同一台机器上,可能需要调整 ident 服务的配置以返回正确的用户名[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值