本文是在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远程连接配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论