当前位置: 首页 > 知识库问答 >
问题:

psql不会登录,而pgAdmin会让我成功登录吗?错误的命令?

公冶泰
2023-03-14

我有一台远程计算机,正在尝试使用以下命令登录postgres数据库(通过ssh以Linuxroot用户身份运行,即在该计算机上本地运行):

# psql -d mydatabase -U postgres -W
Password for user postgres: <here goes my password>
psql: FATAL:  Peer authentication failed for user "postgres"

由于某些原因,此操作失败(尝试了约5次)。

但是当我使用pgAdmin(即远程)以相同的角色(postgres)和相同的密码登录到同一个数据库时,它每次都成功登录。

我使用的psql命令有什么问题?如果正确,您能建议任何故障排除步骤吗?

编辑:所以问题是在pg_hba.conf中,远程和本地连接的处理方式不同。远程设备配置正确。问题是为什么当地人不工作。

对于本地人,我在pg_hba.conf

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

我是否正确理解,对于localhost连接,它首先尝试对等身份验证,如果失败,它不会尝试md5,只返回错误?


共有1个答案

卫念
2023-03-14

默认情况下,psql尝试通过对等方登录。这意味着,您必须以postgres身份登录本地计算机。您可以强制psql使用TCP/IP,您需要tpo指定一个主机,该主机可以是localhost,因此调用可能如下所示:

psql -U postgres -h 127.0.0.1

另一种方法是调整你的设置。我看到了两种改变当前本地设置的方法:

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

1)允许所有用户通过设置行从localhost无密码登录

local   all             all                                     trust

这是非常危险的,不应该随便做。

2) 另一种方法是创建一个与系统登录名具有相同用户名的数据库用户,并授予此帐户的所有权限

当然,这也是我在这种情况下通常做的:在postgres用户的上下文中运行psql,例如通过sudo-u postgres psql或使用su-u postgres-c“psql…”

 类似资料:
  • 我已经编写了一个php用户登录脚本,虽然我已经设法使注册页面正常工作(从而排除了common.php文件的内容是一个问题),并在mySQL中检查了数据库正在填充,但我似乎无法使登录本身发布任何内容,而不是不成功。 我肯定是在数据库中输入用户名和密码。有人能看出我哪里出了问题,或者建议我如何检查哪里出了问题吗? 表jmp_users的结构如下: 我的login.php页面是:

  • 简介 除了典型的基于表单的认证之外, Laravel 同时提供一种简单便捷的方式授权通过 OAuth providers 使用 Laravel Socialite 。 社会化登录现在支持通过 Facebook、 Twitter、 LinkedIn、 Google、GitHub 和 Bitbucket 授权。 {提示}其他平台的驱动器可以在 Socialite Providers 社区驱动网站查找。

  • 我们的团队正在使用Spring boot(2.2.2)开发一个web应用程序。它使用Spring security来处理登录过程。我们希望应用程序在登录前重定向回页面(例如,用户访问)http://example.com/foo/bar - 除了应用程序偶尔指向默认页面(例如,http://example.com)而不是登录前的页面。发生这种情况时,登录前的页面似乎没有保存在会话中(根据我的队友的

  • 我有问题与apache2error.log.500错误没有出现在那里(/var/log/apache2/error.log),我只是得到这些行每次我重新启动apache2服务: 我把error_reporting=E_ALL,display_errors=上,display_startup_errors=上,log_errors=上 /etc/php/7.4/apache2/php.ini和 /e

  • 我正在用android编程。当我使用(LoginActivity)成功登录时,下一步是加载MainActivity,这个MainActivity是一个导航抽屉活动,但我遇到了这个错误: 致命异常:主进程:com.example.administrador.vicon,PID:32149java.lang.运行时异常:无法启动活动ComponentInfo{com.example.administr

  • 编辑:我发现了一个类似的问题,专门针对Facebook的登录。我正在使用电子邮件认证,但问题/解决方案可能是相同的。 userinfo={nsunderlyingerror=0x14704d4b0{Error domain=firauthinternalerrordomain code=3“(null)”userinfo={firautherroruserinfoderializedrespons