Stellen Sie mit pgadmin eine Verbindung zu einer Heroku-Datenbank her


180

Ich möchte meine Heroku-Datenbank mit dem pgadminClient verwalten. Inzwischen mache ich das mit psql. Wenn ich Daten von verwende heroku pg:credentials, um de DB mit zu verbinden, erhalte pgadminich:

Ein Fehler ist aufgetreten:

Fehler beim Herstellen einer Verbindung zum Server: FATAL: Berechtigung für Datenbank "postgres" verweigert DETAIL: Benutzer hat keine CONNECT-Berechtigung.

Irgendeine Anleitung, wie man die Verbindung herstellt?


1
Vielen Dank für diese Frage, ich wusste nur nicht, dass es möglich ist
— Slow Harry

Antworten:


327

Öffnen Sie die "Eigenschaften" des Heroku-Servers in pgAdminIII und ändern Sie den Wert "Maintenance DB" in den Namen der Datenbank, zu der Sie eine Verbindung herstellen möchten.

pgAdmin III - Neue Serverregistrierung

Das Standard-Setup eignet sich für DBAs et al., Die eine Verbindung zu einer beliebigen Datenbank auf dem Server herstellen können. In Ihrem Fall ist dies jedoch anscheinend nicht der Fall.


9
Wie in einer anderen Antwort vorgeschlagen , müssen Sie SSL aktivieren, indem Sie im Verbindungsdialog ebenfalls "SSL | SSL | erforderlich" auswählen. Andernfalls kann die Verbindung weiterhin nicht hergestellt werden.
— Brad Parks

Wenn Sie Rails App haben, können Sie über github.com/igorkasyanchuk/rails_db
— Igor Kasyanchuk

Ich erhalte auf pgadmin 3 die Fehlermeldung, dass der Server, den Sie verbinden möchten, nicht zwischen 8.4 und 9.3 liegt und eine Verbindung herstellt, sondern ständig eine Liste von 159 Datenbanken mit Fehler-Popups anzeigt.
— Abhishek

3
Das hat einfach aufgehört für mich zu arbeiten? Funktioniert es immer noch für jemanden?
— Rune Jeppesen

@Ced yeah ich jetzt auch - Windows hatte beschlossen, meine Firewall einzuschalten und diesen Port zu blockieren: - /
— Rune Jeppesen

101

Nachdem Sie den Namen der Wartungs-DB geändert haben , wie in der obigen Antwort von araqnid vorgeschlagen , sollten Sie Ihre Datenbank auch zum Feld "DB-Einschränkungen" hinzufügen, da ohne diese Datenbank Tausende von Datenbanken angezeigt werden und Sie Ihre Datenbank möglicherweise nicht in der Liste finden können, wenn die Liste vorhanden ist zu lang.

Weitere Details hier - So verstecken Sie Datenbanken, auf die ich nicht zugreifen darf


5
+1 und wenn Sie den Datenbanknamen hinzufügen, müssen Sie ihn in einfache Anführungszeichen setzen, da er zum dynamischen Generieren einer INKlausel zum Filtern der Datenbankliste verwendet wird.
— Glenn

20

Wir benötigen SSL für Verbindungen außerhalb von Heroku. Bitte überprüfen Sie, ob Sie SSL in Ihrem Client erzwingen.

Bearbeiten:

Hier ausführlicher beantwortet: /dba/21869/connecting-pgadmin3-to-postgres-on-heroku

Wir erlauben keine Verbindungen zum postgres Datenbank. Stellen Sie daher die Wartungsdatenbank auf Ihren Datenbanknamen ein und verwenden Sie SSL.

Das sollte hoffentlich ausreichen.


2
Benötige ich Dateien / Schlüssel, um SSL zu erzwingen? (Entschuldigung für die Unwissenheit)
— Tomas Romero

In der Regel haben grafische Benutzeroberflächen irgendwo ein Kontrollkästchen für SSL. Ich verwende pgadmin nicht, aber basierend auf den Dokumenten [1] sieht es so aus, als ob es im Dialogfeld "Verbindungskonfiguration" eine Registerkarte "SSL" gibt. [1] pgadmin.org/docs/dev/connect.html
— hgmnz

Als ich auf die Registerkarte SSL klickte, fragte ich nach Zertifikaten und einem Schlüssel, und ich kannte die Werte für sie nicht. Wenn Sie den Namen der Wartungs-DB auf meinen Heroku-DB-Namen setzen, kann ich eine Verbindung herstellen, indem ich nur die Registerkarte "Eigenschaften" konfiguriere, ohne nichts über SSL angeben zu müssen (dies geschieht anscheinend automatisch)
— Tomas Romero

10

Ändern Sie die Wartungsdatenbank in den Namen Ihrer Datenbank, z. B. dva70000p0090. Das sollte funktionieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.