Postgresql pgadmin给了我一个错误:没有提供密码
我已经在linux(kubuntu)和最新版本的pgadmin3上安装了postgresql 9.2,但是当我连接它们时,出现以下错误: 发生了一个错误: 连接到服务器时出错:fe_sendauth:未提供密码 我能做什么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附带的关于连接(“服务器”)设置
我还用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';