前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >连接到PostgreSQL数据库

连接到PostgreSQL数据库

作者头像
用户8196625
发布2023-09-06 15:33:27
3240
发布2023-09-06 15:33:27
举报
文章被收录于专栏:oracleaceoracleace

PG的默认链接规则

PG默认只接受本地的访问,这个规则是由参数listen_addresses控制的

代码语言:javascript
复制
postgres=> show listen_addresses;
 listen_addresses
------------------
 localhost
(1 row)

可以把修改这个参数用于指定访问的ip,也可以用星号允许所有的IP访问。

代码语言:javascript
复制
listen_addresses = 'localhost,192.168.87.178'

pg_hba.conf 文件其全名为 "PostgreSQL Host-Based Authentication Configuration"。该文件用于管理数据库系统中客户端连接的身份验证和访问控制。它决定了哪些主机和用户可以连接到数据库以及以何种方式连接。默认只允许本地连接,且连接认证方式均为 trust,生产环境建议更改为 md5 连接认证方式,并根据需求增加允许访问的客户端地址。

02

本地操作系统用户无密码连接

修改pg_hba.conf 文件

代码语言:javascript
复制
local   all             all          ident map=map_name

这里的ident也可以改成peer,因为当为一个本地(非 TCP/IP)连接指定 ident 时,将实际使用 peer 认证。

修改pg_hba.conf 文件

代码语言:javascript
复制
# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
map_name root postgres
map_name postgres postgres

下面的命令载入修改后的配置

代码语言:javascript
复制
-bash-4.2$ /usr/pgsql-14/bin/pg_ctl reload
server signaled

或者

代码语言:javascript
复制
postgres=> select pg_reload_conf();

使用root用户登录测试

代码语言:javascript
复制
[root@pg data]# id
uid=0(root) gid=0(root) groups=0(root)
[root@pg data]# psql -U postgres
psql (14.3)
Type "help" for help.

postgres=# select user;
   user
----------
 postgres
(1 row)

03

远程TCP/IP登录

pg_hba.conf 文件中对应的配置如下:

代码语言:javascript
复制
host    all             all             0.0.0.0/0            md5

远程登录:

代码语言:javascript
复制
root@YaoYuan ~# psql -U postgres -h 192.168.18.198
Password for user postgres:
psql (15.3, server 14.3)
Type "help" for help.

postgres=# select user;
   user
----------
 postgres
(1 row)

04

ident认证

首先要安装服务,不然会出现下面的错误:

代码语言:javascript
复制
2023-08-08 07:38:07.213 UTC [25746] LOG:  could not connect to Ident server at address "192.168.87.178", port 113: Connection refused

安装方法如下:

代码语言:javascript
复制
--linux 客户端安装 oidentd,并启动该服务
yum -y install epel-release
yum clean all && yum makecache
yum install -y oidentd

pg_hba.conf 文件中对应的配置如下:

代码语言:javascript
复制
host    all             all             0.0.0.0/0            ident map=map_name

使用root用户登录测试:

代码语言:javascript
复制
[root@pg data]# psql -U postgres -h 192.168.18.198
psql (14.3)
Type "help" for help.

postgres=# select user;
   user
----------
 postgres
(1 row)

可以不用密码登录

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 oracleace 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档