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?

Tomas Romero
quelle
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.

araqnid
quelle
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

cm12
quelle
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.

hgmnz
quelle
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.

Ravi
quelle