Postgresql 使用 Navicat 进行远程连接

文章讲述了在Ubuntu22.04系统上安装的PostgreSQL中,如何为适应WindowsNavicat连接,需修改pg_hba.conf文件以允许所有IP地址通过密码验证。通过`systemctlrestartpostgresql`重启服务后,即可解决连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述】

我使用 ubuntu 22.04 的机器,上面安装了 postgresql. 现在我需要在 windows 电脑上使用 Navicat 连接,我已经设置了 listening="*", 如下图,在 `/etc/postgresql/14/main/postgresql.conf` 中更改了配置。

但是还是会出现报错:

【解决方法】

查阅多方资料得知:postgresql 为了数据安全,通常只允许本地端口连接。为了解决这一问题,我需要更改以下配置:

首先,因为我的安装方式是 sudo apt-get install postgresql 直接安装,所以我只需要在上述 postgresql.conf 的同级目录下更改配置文件 pg_hba.conf. 也就是 /etc/postgresql/14/main/pg_hba.conf 文件。在文件中找到如下内容并且更改:

更改为以上内容即可。

0.0.0.0/0 表示接受所有 ip 地址的访问,md5 表示需要通过密码验证。

如果不知道如何设置 postgresql 的话可以了解这篇:

Ubuntu 下安装 Postgresql - 阿里云开发者社区 (aliyun.com)​​​​​​​​​​​​​​icon-default.png?t=N7T8https://developer.aliyun.com/article/1206821

ok,更改设置以后,直接运行命令 `systemctl restart postgresql` 再使用 navicat 连接就可以了!

 

### 配置 PostgreSQL 支持 Navicat 远程连接 为了使 Windows 上的 Navicat 能够成功连接到 Ubuntu 22.04 上运行的 PostgreSQL 数据库,需确保几个关键配置已正确设置。 #### 修改 `postgresql.conf` 确认 PostgreSQL 已被配置为监听所有网络接口。这可以通过编辑位于 `/etc/postgresql/14/main/postgresql.conf` 文件来完成: ```bash listen_addresses = '*' port = 5432 ``` 上述配置使得 PostgreSQL 可以接受来自任何 IP 地址的连接请求[^1]。 #### 更新 pg_hba.conf 授权文件 除了调整监听地址外,还需更新权限控制列表 (pg_hba.conf),以便允许外部客户端通过特定认证方法接入数据库服务。对于希望开放给任意 IPv4 客户端的情况,可以在该文件中加入如下条目: ```plaintext host all all 0.0.0.0/0 scram-sha-256 ``` 此行定义了对所有用户的访问许可,并采用 SCRAM-SHA-256 加密方式验证身份信息[^5]。 #### 检查防火墙规则 即使完成了以上两步操作,如果服务器上的防火墙阻止了对外部世界的通信,则仍然无法建立成功的远程连接。因此建议核查 Linux 主机的安全策略,特别是 UFW 或 iptables 设置,保证 TCP 协议下的目标端口(通常是 5432)处于开启状态[^2]。 #### 测试连接性 最后一步是在本地尝试启动 psql 命令行工具或其他图形化界面如 pgAdmin 来测试新设定的效果;也可以直接利用 Navicat 创建一个新的 PostgreSQL 连接实例来进行实际检验。确保输入正确的主机名/IP、用户名以及密码等必要参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值