【问题标题】:Connect to a heroku database with pgadmin使用 pgadmin 连接到 heroku 数据库
【发布时间】:2012-07-30 23:24:54
【问题描述】:

我想使用pgadmin 客户端管理我的 Heroku 数据库。到目前为止,我一直在使用psql 进行此操作。 当我使用来自heroku pg:credentials 的数据使用pgadmin 连接数据库时,我得到:

发生错误:

连接到服务器时出错:致命:数据库的权限被拒绝 “postgres”详细信息:用户没有 CONNECT 权限。

如何实现连接?

【问题讨论】:

    标签: database postgresql heroku pgadmin


    【解决方案1】:

    在 pgAdminIII 中打开 Heroku 服务器的“属性”,并将“维护数据库”的值更改为您要连接的数据库的名称。

    默认设置适用于可以连接到服务器上任何数据库的 DBA 等人,但显然这不适用于您的情况。

    【讨论】:

    • 作为suggested in another answer,您还需要在连接对话框中选择“SSL | SSL | require”来启用SSL,否则仍然无法连接。
    • 如果你有 Rails 应用,你可以使用github.com/igorkasyanchuk/rails_db访问数据库
    • 我在 pgadmin 3 上收到错误,您尝试连接的服务器不在 8.4 和 9.3 之间,它连接但始终显示 159 个带有错误弹出窗口的数据库列表。
    • 这对我不起作用了?它仍然适用于任何人吗?
    • @Ced 是的,我现在也是 - Windows 决定打开我的防火墙并阻止该端口:-/
    【解决方案2】:

    按照araqnid's answer above 的建议更改维护数据库名称后,您还应该将您的数据库添加到数据库限制字段,因为没有这个您将看到数千个数据库,并且您可能无法在列表中找到您的数据库,如果列表太长了。

    更多细节在这里 - How to hide databases that I am not allowed to access

    【讨论】:

    • +1 并且在添加数据库名称时,请务必将其用单引号引起来,因为它将用于动态生成IN 子句以过滤数据库列表。
    • 谢谢!正如其更新所提到的,在 pgAdmin 4 中,不要添加引号。
    【解决方案3】:

    这是用于 pgAdmin 4

    为了将 pgAdmin 连接到您的数据库(Heroku 中的 postgres 实例),请执行以下操作:

    1. 登录 Heroku,然后选择您拥有数据库的应用程序

    2. 选择资源标签,然后点击“Heroku Postgres Ad-on”(见下文)。这将打开一个新选项卡。

    3. 选择设置标签,然后点击“查看凭据...”(见下文)

      您将获得以下将在 pgAdmin 中使用的信息:

    4. 转到 pgAdmin,并创建一个新服务器

    5. 常规标签中,提供一个有用的名称

    6. Connection 标签中,填写您在 Heroku 获得的信息

    7. 为了避免看到成千上万的数据库,您需要在高级选项卡中将数据库名称添加到数据库限制(见下文)

    【讨论】:

    • 我无法连接到服务器:致命:数据库“postgres”的权限被拒绝详细信息:用户没有 CONNECT 权限。
    • 非常感谢,我完全错过了高级选项卡的最后一点!
    【解决方案4】:

    对于 Heroku 外部的连接,我们需要 SSL。请验证您是否在客户端中强制使用 SSL。

    在这里回答得更彻底:Connecting pgAdmin3 to Postgres on Heroku

    我们不允许连接到 postgres 数据库,因此请务必将 Maintenance DB 设置为您的数据库名称,并确保使用 SSL。

    【讨论】:

    • 我是否需要任何类型的文件/密钥来强制使用 SSL? (请原谅我的无知)
    • 通常图形界面在某处有一个 SSL 复选框。我不使用 pgadmin,但根据文档 [1],连接配置对话框中似乎有一个 SSL 选项卡。 [1]pgadmin.org/docs/dev/connect.html
    • 当我单击 SSL 选项卡时,它要求我提供证书和密钥,但我不知道它们的值。虽然,购买将维护数据库名称设置为我的 heroku 数据库名称,但我可以连接仅配置“属性”选项卡,而无需指定任何有关 SSL 的内容(这显然是自动完成的)
    • 要更改属性,请先断开与服务器的连接
    【解决方案5】:

    将维护数据库更改为您的数据库名称,例如dva70000p0090。这应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      相关资源
      最近更新 更多