pgadmin给我错误:没有提供密码

Dar*_*fee 18 postgresql web-applications pgadmin

我在linux(kubuntu)和pgadmin3的最后一个版本上安装了postgresql 9.2,但是当我连接它们时,我有这个错误:

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

我能做什么?

我还在java中为我的web应用程序配置了tomcat.事实上,在尝试我的应用程序之前,postgresql正在运行.

Pas*_*hal 24

更改角色 postgres 的密码:

sudo -u postgres psql postgres

alter user postgres with password 'postgres';
Run Code Online (Sandbox Code Playgroud)

尝试使用“postgres”作为用户名和密码进行连接。

参考:如何修改PostgreSQL用户密码


Erw*_*ter 12

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

我引用了pgAdmin附带的帮助,用于连接("服务器")设置中的"主机"字段:

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

如果通过Unix套接字连接,则"本地"规则适用.而通过TCP/IP连接时,"host"(或"hostssl")规则适用.

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

local    all     all     peer
Run Code Online (Sandbox Code Playgroud)

要么:

local    all     all     ident
Run Code Online (Sandbox Code Playgroud)

..如果您的系统用户是"postgres"而您的数据库用户也是"postgres",那么您可以在本地连接而无需密码.

  • 我改变了#"local"仅适用于Unix域套接字连接本地所有对等#IPv4本地连接:host all all 127.0.0.1/32 trust <br/>#IPv6 local connections:<br />主持所有:: 1/128信任<br/>它有效!谢谢!! (2认同)

bbu*_*123 6

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

和许多开发商店一样,当开发人员需要QA postgres密码时,他们只是大喊大叫,给它发消息,给它发电子邮件,把它写在额头上等等.我想,"这真的很糟糕.我需要弄清楚在这里使用PKI的方法." 我们也使用pgAdmin3.

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

host all dev 127.0.0.1/32 trust

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

ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104

这允许使用postgres端口,就好像它是localhost一样.当然,更换密钥,服务器并确保在本地映射到一个开放端口(如果你有一个本地postgres运行,它可能绑定到5432).我使用了一个非常详细的标志,因此我可以轻松解决任何ssh问题.

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

psql -h 127.0.0.1 -U dev -p 5432

您应该可以访问数据库,并且永远不会被提示输入密码,我认为这很好,否则,开发人员只会放弃密​​码而不考虑安全性,将其传递出来,就像万圣节糖果一样.

截至目前,PgAdmin3仍然会提示您输入密码,即使 - 显然是白天 - 您不需要密码.但其他postgres GUI不会.试试Postico.它处于测试阶段,但效果很好.

我希望这个答案可以帮助像我这样的人,他们宁愿使用PKI进行postgres身份验证,而不是无缘无故地分享密码.