Postgresql pgadmin给了我一个错误:没有提供密码

Postgresql pgadmin给了我一个错误:没有提供密码,postgresql,web-applications,pgadmin,Postgresql,Web Applications,Pgadmin,我已经在linux(kubuntu)和最新版本的pgadmin3上安装了postgresql 9.2,但是当我连接它们时,出现以下错误: 发生了一个错误: 连接到服务器时出错:fe_sendauth:未提供密码 我能做什么 我还用java为我的web应用程序配置了tomcat。事实上,postgresql在尝试我的应用程序之前就已经工作了。是否需要密码取决于您在中的设置。您可以使用不同的连接方式-pg_hba.conf中的不同设置可能适用 我引用pgAdmin 3附带的关于连接(“服务器”)设置

我已经在linux(kubuntu)和最新版本的pgadmin3上安装了postgresql 9.2,但是当我连接它们时,出现以下错误:

发生了一个错误: 连接到服务器时出错:fe_sendauth:未提供密码

我能做什么


我还用java为我的web应用程序配置了tomcat。事实上,postgresql在尝试我的应用程序之前就已经工作了。

是否需要密码取决于您在中的设置。您可以使用不同的连接方式-pg_hba.conf中的不同设置可能适用

我引用pgAdmin 3附带的关于连接(“服务器”)设置中“主机”字段的帮助:

主机是要联系的机器的IP地址,或者是完整的IP地址 限定域名。在基于Unix的系统上,地址字段可能是 保留为空可在上使用默认的PostgreSQL Unix域套接字 本地计算机,或设置为包含PostgreSQL的备用路径 插座如果输入路径,则必须以“/”开头。港口 也可以指定编号

如果通过Unix套接字连接,“本地”规则适用。 然而,当通过TCP/IP连接时,“主机”(或“主机SSL”)规则适用

如果在pg_hba.conf文件的顶部有这样一行:

local    all     all     peer
或:


。。然后,如果您的系统用户是“postgres”,并且您的数据库用户也是“postgres”,则您可以不使用密码进行本地连接。

我意识到这个问题已经存在多年了,但我今天遇到了同样的问题,并且有一个解决方案,它以有限但有用的方式使用了
信任

就像在许多开发商店中一样,当开发者需要QA postgres密码时,他们只需要大声喊出来、发信息、发电子邮件、写在额头上等等。我会说,“这太糟糕了。我需要找到一种在这里使用PKI的方法。”我们还使用pgAdmin3

首先,在pg_hba.conf中添加这样一行,其中
dev
代表您商店中开发人员的用户:

托管所有dev 127.0.0.1/32信任

将开发人员的公钥放入数据库服务器上的
authorized_keys
文件夹中。现在,使用类似于以下命令的
-L
标志将它们ssh到服务器中:

ssh-i~/.ssh/id_rsa-L5432:127.0.0.1:5432-vvv101.102.103.104

这使得人们可以像使用本地主机一样使用postgres端口。当然,替换密钥、服务器并确保映射到本地打开的端口(如果您有一个本地postgres正在运行,它可能绑定到5432)。我使用了一个非常详细的标志,因此可以轻松地解决任何ssh问题

打开另一个终端并发出以下命令:

psql-h127.0.0.1-U dev-p5432

你应该可以访问数据库,而且永远不会被提示输入密码,我认为这很好,因为否则,开发者会放弃密码,而不考虑安全性,就像万圣节糖果一样分发出去

到目前为止,PgAdmin3仍然会提示您输入密码,即使您不需要密码,这一点很简单。但其他postgres GUI将不会。试试邮局。这是测试版,但效果很好


我希望这个答案能帮助像我这样的人,他们宁愿使用PKI进行postgres认证,也不愿随意共享密码

最近遇到了这个问题

如果您在本地计算机上使用PostgreSQL,并且psql在不需要日志记录的情况下运行良好,请尝试pgadmin3的菜单
文件-添加服务器-属性选项卡
,为该连接填写
名称
字段,将
主机
字段和
密码
字段留空,然后单击
确定

在基于Unix的系统上,地址字段可以留空以使用 本地计算机上的默认PostgreSQL Unix域套接字,或 指向包含PostgreSQL套接字的备用路径。如果路径是 输入时,必须以“/”开头


参与Debian测试(pgadmin3 1.22,PostgreSQL 11),无需触摸
pg_hba.conf

更改角色postgres的密码:

sudo -u postgres psql postgres

alter user postgres with password 'postgres';
尝试使用“postgres”连接用户名和密码


请参阅:

对于我来说,我运行
pg_ctl-D/usr/local/var/postgres start
,启动服务器,然后一切正常,它将弹出连接主机端口。

我的密码是空的,所以我只是在收到请求时输入了密码。你能尝试从命令行连接吗
$psql-U-h
如果要使用unix域套接字连接,可以省去-h。@Eelke感谢您的帮助,我解决了更改pg_hba.confI changhed
#“local”的问题仅适用于Unix域套接字连接
本地所有对等方#IPv4本地连接:托管所有127.0.0.1/32信任度
#IPv6本地连接:
托管所有::1/128信任度
并且可以工作!谢谢@DarkCoffee:我想您知道
信任设置不安全。对于版本3可能是这样,但在pgAdmin 4上,主机名/地址字段不能为空;它生成了一个错误。日志文件向我提供了pg_hba.conf中规则按顺序处理的附加信息。我不得不将我的规则向上移动到一个更广泛的规则上,这样它才会产生效果。谢谢
sudo -u postgres psql postgres

alter user postgres with password 'postgres';