2014-01-19 110 views
8

我试图运行heroku pg:pull命令,但我似乎无法得到惊人的神秘身份验证过程。heroku pg:拉密码验证失败

我运行命令:

> heroku pg:pull app_name::RED localdb 

我然后得到一个密码提示,我不能为我的生活,找出。经过2次猜测,我得到了password authentication failed for user "Hanan",就是这样。

我试过Heroku的密码,我的Windows帐户密码,我使用的每个密码,但没有任何反应。我检查过,“Hanan”不是Postgresql中的角色,所以试图通过psql更改密码不起作用。我没有问题通过其他角色登录Postgresql,但这是'默认'登录过程,我似乎无法破解。

此外,由于我使用的是Windows,所以我不知道如何运行sudo -u postgres psql这样的命令,我认为这是一种可行的解决方案。

将了解关于这个问题的任何帮助,我真的现在沮丧......

+0

有同样的问题...还没有找到解决方案。 – aardvarkk

+0

虽然'heroku pg:pull'很简单,只要它不工作我试图用下面的链接描述的方法将db拉到本地安装的postgres,然后使用tap服务器填充我的应用程序的db。这工作在我的MacBook上,但是,你可以猜到,不是在我的电脑上:/ 链接:http://stackoverflow.com/questions/5649868/is-there-a-faster-way-to-pull -production-data-from-heroku-than-taps – hananamar

回答

8

显然,这是可能的设置环境变量PGUSER和PGPASSWORD,如所描述here

但是,在给定的语法中,这不适用于Windows。要在Windows上执行此操作运行以下命令:

SET PGUSER = [pg_username]

SET PGPASSWORD = [pg_password]

进入这两条线后,Postgres将记录你在给定身份验证信息,而不是试图用Windows登录用户名

+0

工程就像一个魅力。谢谢! – Sprachprofi

7

运行heroku pg:pull时,我遇到了很多这个问题。在我的情况下,问题是pg:pull命令只适用于我的本地PostgreSQL服务器设置了密码。

要设置密码,运行psql localdb并执行此SQL:

ALTER USER my_user_name with password 'my_new_password'; 

(您不一定需要使用这个密码所有的时间运行psql localdb,看看是否提示您,在我的情况下,我仍然可以在没有密码的情况下登录到psql。)

现在运行heroku pg:pull --app my_heroku_app POSTGRESQL_COLOR localdb,并在出现提示时输入新密码(两次)。

+0

令人难以置信!出于某种原因,这在我的本地笔记本电脑上不是必需的,但它在我的桌面上......您救了我! – bkunzi01

+0

@ bkunzi01:这取决于/ etc/postgresql/ /main/pg_hba.conf文件中的身份验证方法。将本地/全部/全部从md5更改为对等(并重新启动postgres群集或整个服务),密码提示将消失。在我的情况下,这是必要的,因为(使用md5和当前用户的postgres密码的正确答案)该任务开始,但一分钟后挂起认证失败。这可能是错误。但通过同行认证这可以工作。 (我认为,对等身份验证仅适用于Linux) – mirek