PostgreSQL远程连接配置的实现

 更新时间:2025年06月16日 10:02:36   作者:透明瞳孔  
本文主要介绍了在Windows上通过Navicat远程连接PostgreSQL的配置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文是在Windows上使用Navicat远程连接PostgreSQL,包括有密码远程连接以及无密码远程连接。

修改PostgreSQL监听地址

默认PostgreSQL监听的地址是127.0.0.1,别的机器无法远程连接上,所以需要调整。

# 编译安装的PostgreSQL一般是在数据存储目录
# 不管是哪种安装方式要是找不到的话可以使用find命令搜索一下
find / -name 'postgresql.conf'

# 修改postgresql.conf文件
# 大约在60行左右
# 有可能是注释的,如果注释了要取消注释
[root@bogon ~]# grep 'listen_addresses' /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'		# what IP address(es) to listen on;

重启服务

[root@bogon ~]# su - postgres -c "pg_ctl -D /usr/local/pgsql/data/ restart"
waiting for server to shut down.... done
server stopped
waiting for server to start....2024-05-17 03:24:12.197 EDT [10798] LOG:  starting PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2024-05-17 03:24:12.197 EDT [10798] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-05-17 03:24:12.197 EDT [10798] LOG:  listening on IPv6 address "::", port 5432
2024-05-17 03:24:12.198 EDT [10798] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2024-05-17 03:24:12.201 EDT [10801] LOG:  database system was shut down at 2024-05-17 03:24:12 EDT
2024-05-17 03:24:12.204 EDT [10798] LOG:  database system is ready to accept connections
 done
server started

# 查看端口监听情况
[root@bogon ~]# ss -nlpt | grep 5432
LISTEN     0      128          *:5432                     *:*                   users:(("postgres",pid=10798,fd=6))
LISTEN     0      128       [::]:5432                  [::]:*                   users:(("postgres",pid=10798,fd=7))

配置访问权限

默认是只能本地访问PostgreSQL的,我们需要在pg_hba.conf里面配置

# 我的是在数据存储目录下,如果你的不知道的话可以使用find搜索一下
[root@bogon ~]# find / -name 'pg_hba.conf'
/usr/local/pgsql/data/pg_hba.conf

请注意,使用 trust 认证方法允许任何 IP 地址连接到你的数据库,而不需要任何认证,这是非常不安全的。这通常只在开发或测试环境中使用,并且应该始终确保数据库服务器不暴露在不受信任的网络中。在生产环境中,你应该使用更安全的认证方法,如 md5 或 password(对于较新版本的 PostgreSQL,建议使用 scram-sha-256)。 

# 找到IPv4 local connections这一行,在这一行下面添加
# 注意这样是不安全的,因为所有地址都可以无密码远程连接我们的数据库了
# host:这指定了连接类型。host 表示该规则适用于通过 TCP/IP 进行的远程连接。如果是本地连接,通常会使用 local。
# all:这定义了哪些数据库可以接受这个规则。all 表示这个规则适用于所有数据库。你也可以指定特定的数据库名,例如 mydatabase。
# all:这定义了哪些用户可以接受这个规则。all 表示这个规则适用于所有用户。你也可以指定特定的用户名,例如 myuser。
# 0.0.0.0/0:这定义了哪些客户端 IP 地址或 IP 地址范围可以接受这个规则。0.0.0.0/0 是一个特殊的 CIDR 表示法,它表示任何 IP 地址(即没有 IP 地址限制)。你也可以指定具体的 IP 地址,如 192.168.1.100,或者 IP 地址范围,如 192.168.1.0/24。
# trust:这定义了认证方法。trust 表示不需要密码或其他任何形式的认证,客户端可以直接连接。这通常只在本地或受信任的网络环境中使用,因为它允许任何人无需认证即可访问数据库。
host    all             all             0.0.0.0/0            trust

请注意,如果选择了md5 或 password之类的需要有密码才行,配置PostgreSQL密码流程如下

# 切换用户
[root@bogon ~]# su - postgres
Last login: Fri May 17 03:40:32 EDT 2024 on pts/1

# 登录数据库
[postgres@bogon ~]$ psql 
psql (16.3)
Type "help" for help.

# 修改密码,我这里密码设置为123456
postgres=# ALTER USER postgres WITH PASSWORD '123456';
ALTER ROLE
postgres=# \q

重启服务

[root@bogon ~]# su - postgres -c "pg_ctl -D /usr/local/pgsql/data/ restart"
waiting for server to shut down....2024-05-17 03:31:44.721 EDT [10798] LOG:  received fast shutdown request
2024-05-17 03:31:44.722 EDT [10798] LOG:  aborting any active transactions
2024-05-17 03:31:44.723 EDT [10798] LOG:  background worker "logical replication launcher" (PID 10804) exited with exit code 1
2024-05-17 03:31:44.723 EDT [10799] LOG:  shutting down
2024-05-17 03:31:44.725 EDT [10799] LOG:  checkpoint starting: shutdown immediate
2024-05-17 03:31:44.727 EDT [10799] LOG:  checkpoint complete: wrote 0 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.001 s, total=0.004 s; sync files=0, longest=0.000 s, average=0.000 s; distance=0 kB, estimate=0 kB; lsn=0/15698B0, redo lsn=0/15698B0
2024-05-17 03:31:44.730 EDT [10798] LOG:  database system is shut down
 done
server stopped
waiting for server to start....2024-05-17 03:31:44.842 EDT [11215] LOG:  starting PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2024-05-17 03:31:44.842 EDT [11215] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-05-17 03:31:44.842 EDT [11215] LOG:  listening on IPv6 address "::", port 5432
2024-05-17 03:31:44.843 EDT [11215] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2024-05-17 03:31:44.846 EDT [11218] LOG:  database system was shut down at 2024-05-17 03:31:44 EDT
2024-05-17 03:31:44.851 EDT [11215] LOG:  database system is ready to accept connections
 done
server started

使用Navicat连接

修改一下IP地址即可,修改为PostgreSQL的地址,不用输入密码,因为我们设置的是无密码

如果设置的有密码那就填写对应的密码即可

点击 测试连接 如果显示 连接成功,就可以点击确定了

双击打开数据库

到此这篇关于PostgreSQL远程连接配置的实现的文章就介绍到这了,更多相关PostgreSQL远程连接配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决postgresql 自增id作为key重复的问题

    解决postgresql 自增id作为key重复的问题

    这篇文章主要介绍了解决postgresql 自增id作为key重复的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • postgresql逻辑复制的实现

    postgresql逻辑复制的实现

    本文介绍PostgreSQL逻辑复制实现,基于发布订阅模型,需设置WAL_LEVEL为logical,支持跨库备份,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • PostgreSQL数组函数的使用

    PostgreSQL数组函数的使用

    在PostgreSQL18 中,数组类型提供了非常丰富的内置函数,可以极大地提升对数组数据的处理效率,以下为整理了 PostgreSQL 操作数组的常用函数
    2026-06-06
  • PostgreSQL怎么创建分区表详解

    PostgreSQL怎么创建分区表详解

    数据库表分区把一个大的物理表分成若干个小的物理表,并使得这些小物理表在逻辑上可以被当成一张表来使用,下面这篇文章主要给大家介绍了关于PostgreSQL怎么创建分区表的相关资料,需要的朋友可以参考下
    2022-06-06
  • postgresql synchronous_commit参数的用法介绍

    postgresql synchronous_commit参数的用法介绍

    这篇文章主要介绍了postgresql synchronous_commit参数的用法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 基于Postgresql 事务的提交与回滚解析

    基于Postgresql 事务的提交与回滚解析

    这篇文章主要介绍了基于Postgresql 事务的提交与回滚解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Docker安装PostgreSQL数据库的详细步骤

    Docker安装PostgreSQL数据库的详细步骤

    这篇文章主要介绍了Docker安装PostgreSQL数据库的详细步骤,包括启动PostgreSQL容器、获取容器的IP地址、启动一个新的CentOS容器、在CentOS容器中安装PostgreSQL客户端、通过psql客户端连接到PostgreSQL容器和在PostgreSQL中执行SQL操作等内容,需要的朋友可以参考下
    2024-10-10
  • 在PostgreSQL中将整数(int)转换为字符串的方法汇总

    在PostgreSQL中将整数(int)转换为字符串的方法汇总

    PostgreSQL中将整数转换为字符串有多种方法,包括使用CAST函数、::操作符、字符串连接、to_char()函数等,每种方法都有其适用场景和性能特点,推荐根据具体需求选择合适的方法,需要的朋友可以参考下
    2025-12-12
  • Postgresql使用update语句的方法示例

    Postgresql使用update语句的方法示例

    PostgreSQL是一种开源的关系型数据库管理系统,它支持SQL语言以及许多高级功能,如事务、外键、触发器等,下面这篇文章主要给大家介绍了关于Postgresql使用update语句的相关资料,需要的朋友可以参考下
    2024-04-04
  • 利用OGG实现PostgreSQL实时同步的过程详解

    利用OGG实现PostgreSQL实时同步的过程详解

    本文详细阐述了利用OGG实现PostgreSQL实时同步的全过程,文章通过代码示例和图文结合讲解的非常详细,对大家的学习或工作有一定的参考价值,需要的朋友可以参考下
    2023-11-11

最新评论