0811---PostgreSQL14 本地用户连接数据库问题

文章讲述了在CentOS7环境下,PostgreSQL14中本地用户遇到连接问题,解决方法包括修改pg_hba.conf将本地认证方式改为trust,或在操作系统中创建同名用户。提供了一种通过创建对应用户和数据库实现快捷连接的方法。
摘要由CSDN通过智能技术生成

PostgreSQL14 本地用户连接数据库问题

系统环境说明:centos7 ,PostgreSQL14

一 本地创建用户无法连接问题

  1. 以 postgres用户运行 psql
# 创建数据库用户
postgres=# create user testuser;

# 切换到新创建的用户testuser
\c - testuser;
connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "testuser"
  1. 查看 pg_hba.conf 文件 ,客户端认证配置文件(HBA表示基于主机的认证)
# type    database   user   address                          method
....
# "local" is for Unix domain socket connections only
local   all             all                                     peer
....

由配置文件的内容可知,本地的默认连接认证方式是peer,就是利用操作系统的用户来连接数据库。在这种配置方式下,数据库的用户必须同时是操作系统的用户,才可以在本地连接PG数据库。

二 解决方法

1 修改pg_hba.conf 文件,改变本地连接的认证方式,peer改为trust,然后重新启动数据库。

vim  pg_hba.conf

.....
# "local" is for Unix domain socket connections only
local   all             all                      trust
......


2 在操作系统中创建同名用户,保持pg_hba.conf 文件本地连接的默认认证方式peer。

[postgres@centOS7-mini ~]$ psql -d postgres -U testuser

[postgres@centOS7-mini ~]$ psql
postgres=# \c - testuser

三 本地快捷连接方法

保持pg_hba.conf 文件本地连接的默认认证方式peer,通过创建操作系统用户以及与同名的数据库、同名的数据库用户,即可实现快捷访问。

#在操作系统下创建用户
useradd  testuser
#切换到PG的超级用户。
su - postgres
#以超级用户运行psql
psql
#创建与操作系统用户同名的数据库。
create database testuser;
#创建与数据库同名的用户。
create user testuser;
#退出psql
#从系统下切换到testuser。
su - testuser
#快捷运行psql,psql会以testuser用户连接同名的数据库testuser
psql

ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值