IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> PostgreSQL新建用户登录报错:FATAL: Peer authentication failed for user “test“ -> 正文阅读

[大数据]PostgreSQL新建用户登录报错:FATAL: Peer authentication failed for user “test“


背景:PostgreSQL 新建数据库用户后切换用户报错、重新指定新用户登录也报错,但postgres用户登录没有问题。


postgres用户登录数据库
# su - postgres
-bash-4.2$ psql ?-U postgres -d postgres


创建数据库用户test & 创建数据库testdb01 & 授权
postgres=# CREATE USER test WITH PASSWORD '1q2w3e';
postgres=# CREATE DATABASE testdb01 OWNER test;
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb01 TO test;

切换用户到test时报错:
postgres=# \c - test
FATAL: ?Peer authentication failed for user "test"
Previous connection kept

postgres=# \c testdb01
You are now connected to database "testdb01" as user "postgres".

testdb01=# \c - test
FATAL: ?Peer authentication failed for user "test"
Previous connection kept

testdb01=# \q
-bash-4.2$ psql ?-U test -d testdb01
psql: error: FATAL: ?Peer authentication failed for user "test"


但是以postgres用户可以正常登录:

-bash-4.2$ psql ?-U postgres -d testdb01 ? ?
psql (12.9)
Type "help" for help.
testdb01=#?

报错的原因:
psql的连接建立于Unix Socket上默认使用peer authentication,所以必须要用和数据库用户相同的系统用户进行登录。

解决方法:
将peer authentiction 改为 md5,并给数据库设置密码。修改配置文件/var/lib/pgsql/12/data/pg_hba.conf,将
local ? all ? ? ? ? ? ? all ? ? ? ? ? ? peer

两行配置的peer改成md5,修改后的内容如下:
local ? all ? ? ? ? ? ? all ? ? ? ? ? ? md5

生效配置:
service postgresql-12 reload

再次尝试以新用户登录成功:

-bash-4.2$ psql ?-U test -d testdb01 ? ? ? ? ? ? ? ?
Password for user test:?
psql (12.9)
Type "help" for help.

testdb01=>

testdb01=> \c - postgres
Password for user postgres:?
You are now connected to database "testdb01" as user "postgres".
testdb01=#?
testdb01=# \c - test
Password for user test:?
You are now connected to database "testdb01" as user "test".
testdb01=>?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:14:33  更:2022-03-17 22:18:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:22:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码