远程连接postgresql需要的设置

今天在虚拟机上装了个PostgreSQL,用来做数据库服务器。可是从本机去连接PostgreSQL,确连接不上,报错:

SEVERE: Servlet.service() for servlet [default] in context with path [/Shop] threw exception [org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: pg_hba.conf    z X g"192.168.0.1" A   [ U"postgres" A f [ ^ x [ X"shop2, SSL     p   G   g              )] with root cause
org.postgresql.util.PSQLException: FATAL: pg_hba.conf    z X g"192.168.0.1" A   [ U"postgres" A f [ ^ x [ X"shop2, SSL     p   G   g              
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:398)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:173)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)

通过查资料得知:PostgreSQL  默认只监听回环地址127.0.0.1。要想PostgreSQL监听其他的IP,要进行如下设置:

1、修改postgresql.conf文件

listen_address='localhost'  ⇒  listen_address='*'
2、修改 gp_hba.conf文件 在其中增加客户端的ip追加
       # IPv4 local connections: 
        host all all 192.168.198.200/32  password
       192.168.198.200是需要访问的客户端的Ip
3、重启PostgreSQL。



### 配置 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、用户名以及密码等必要参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值