将pgAdmin3连接到Heroku上的Postgres


9

我正在与Django应用程序一起运行Heroku Postgres数据库(Database)。引用该插件的文档在这里。我认为这对于社区来说是一个值得提出的问题,因为Heroku今天警告其用户,它将从以前默认的共享数据库附件中迁移所有内容。

我在将pgAdmin3连接到数据库时遇到问题。

按照上面的链接中的说明,我使用以下命令获取数据库的凭据:

$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE

我在Mac OSX上使用Postgresql的自制安装。

同时,我有:

  • 在我的pg_postgresql.conf中打开SSL;
  • 添加了设置: listen_addresses = '*'
  • 并添加 host all all 0.0.0.0/0 md5
  • 并重新启动我的postgres服务器。

然后我转到pgAdmin3并选择File > Add Server

我输入Heroku提供的凭据,如下所示(第一个是Heroku凭据名称,第二个是pgAdmin字段名称):

在“属性”标签中:

  • dbname转换为Name;
  • 主持人
  • 进入港口;
  • 我将“维护数据库”的pgAdmin字段留空;
  • 用户进入用户名;
  • 密码变成密码;

在SSL标签中:

  • 在SSL字段中,我选择“ require”(按照Heroku的指示)。

我按下Enter键,pgAdmin认为,然后引发如下错误:

An error has occurred:

Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.

不知道此时该怎么办。将不胜感激任何指针。


pgadmin.org/docs/1.8/connect.html说:The maintenance DB field is used to specify the initial database that pgAdmin connects to, and that will be expected to have the pgAgent schema and adminpack objects installed (both optional). On PostgreSQL 8.1 and above, the maintenance DB is normally called ‘postgres’-这就是pgAdmin试图连接的对象。提供postgres用户密码。
dezso 2012年

Answers:


6

感谢Stack Overflow上的@araqnid提供了这里的答案。

从那里引用逐字记录:

在pgAdminIII中打开Heroku服务器的“属性”,然后将“维护数据库”值更改为要连接的数据库的名称。默认设置适用于可以连接到服务器上任何数据库的DBA等人,但是对于您而言显然不是这样。

这对我有用!


但这选择了1368个数据库。即使我已将维护数据库添加为数据库名称
Sunil Garg

3

FATAL: permission denied for database "postgres"表示它正在尝试连接到postgres数据库。我们确实不授予此类特权。不过,您可以连接到自己的数据库,这应该没问题。您可以通过psql CLI连接来证明这一点。

看来您正在将heroku设置dbnameNamepgadmin中的某种名称。这似乎是您在此处创建的内容的“连接名称”(以后可以任意引用),但是没有一个可以设置实际数据库名称的地方,因此它不会默认为postgres

我不是pgadmin用户,而只是在查找指定以下内容的docs [1]周围搜索:

The maintenance DB field is used to specify the initial database that pgAdmin connects to

你能尝试一下吗?

[1] http://www.pgadmin.org/docs/dev/connect.html


1

运行以下命令以从Heroku获取数据库凭据:

heroku pg:credentials DATABASE_URL

然后,您可以使用PG Commander或PGAdmin之类的GUI工具来连接数据库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.