欢迎光临!
若无相欠,怎会相见

PostgreSQL 数据库本地登录失败

序言

前段时间, 搭建了 wekan, 但是由于项目本身有 Bug, 再加上是 JavaScript 项目, 我不懂这个语言, 就无奈放弃。 重新搭建 Taiga 项目, 这个项目是 Python Django 编写的, 多少可以理解。

目前 Taiga 已经正常运行了, 现在将之前遇到了一些问题记录下来。 PostgreSQL 数据库本地登录失败的问题, 详细来说就是我可以使用 Navicat 或 pgAdmin 连接远程 PostgreSQL 服务器, 但是无法在服务器上使用命令行连接本地的数据库服务。

特别声明: 正文部分是转载文章, 源链接 https://blog.csdn.net/u010882234/article/details/121845041

正文

问题

  • pgpool用户已创建,密码已设置,权限已设置,允许登录
  • 但是在PostgreSQL所在服务器上,连接失败,使用以下命令登录均报错,但是navicat工具可以连接
su - postgres
# 指定用户启动,失败
psql -U pgpool
# 以为是没有同名数据库 pgpool 导致的加了个 -d postgres,还是失败
psql -U pgpool -d postgres
# 再次尝试 指定下端口号,还是失败,之后去百度了
psql  -p 5432 -U pgpool -d postgres
  • 报错信息
psql: error: FATAL:  Peer authentication failed for user "pgpool"

处理

  • 很明显,报错信息是用户认证失败,用户不可信
  • 百度了一堆,都说 pg_hba.conf 问题,要求全改为 trust ,这个有安全风险,自己测试用可以这么改,但是不建议
  • 去查看下自己配置的 pg_hba.conf ,发现配置没问题,全网段支持md5命令登录
  • 我这里还是自己测试用的,生产使用可以指定ip段可连接
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
host    all             all             0.0.0.0/0               md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust
host    replication     all             0.0.0.0/0               md5
  • 而且 navicat 可以连接,说明不是网段限制的原因
  • 试着在登录命令里加了下 -h localhost,竟然可以了
  • 无语,可能是设置local不可信导致的
  • 为什么加了下 -h localhost就可以了呢,应该是加上就不是local,命中了后面的host all all 0.0.0.0/0 md5
  • 在pg所在服务器上,使用非postgres用户登录,指定主机地址,才能正常登录

结语

上述一大段, 总结起来就是本地登录的时候加上 -h localhost

如有错误,敬请指出,感谢指正!    2022-06-04  21:59:32

赞(0) 打赏
转载请注明:飘零博客 » PostgreSQL 数据库本地登录失败
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

欢迎光临