Ich verwende eine Heroku Postgres-Datenbank ( Database ) in Verbindung mit einer Django-App. Die Dokumente, die auf das Add-On verweisen, finden Sie hier . Ich dachte, dies wäre eine lohnende Frage für die Community, da Heroku seine Benutzer heute darauf aufmerksam machte, dass alles aus dem Shared-Database-Add-On migriert wird, das früher Standard war.
Ich habe Probleme beim Verbinden von pgAdmin3 mit der Datenbank.
Gemäß den Anweisungen im obigen Link greife ich mit dem folgenden Befehl auf die Anmeldeinformationen der Datenbank:
$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE
Ich verwende eine Homebrew-Installation von Postgresql unter Mac OSX.
In der Zwischenzeit habe ich:
- SSL in meiner pg_postgresql.conf eingeschaltet;
- Einstellung hinzugefügt:
listen_addresses = '*'
- und hinzugefügt
host all all 0.0.0.0/0 md5
- und startete meinen Postgres-Server neu.
Dann gehe ich zu pgAdmin3 und wähle File > Add Server
.
Ich gebe die von Heroku bereitgestellten Anmeldeinformationen wie folgt ein (erstens der Name der Heroku-Anmeldeinformationen, zweitens der Feldname pgAdmin):
Auf der Registerkarte "Eigenschaften":
- Datenbankname in Name;
- Host in Host;
- Hafen in Hafen;
- Ich lasse das Feld pgAdmin für "Wartungsdatenbank" leer.
- Benutzer in Benutzername;
- Passwort in Passwort;
Auf der Registerkarte SSL:
- Im Feld für SSL wähle ich "erfordern" (wie von Heroku angewiesen).
Ich drücke die Eingabetaste und pgAdmin denkt nach und gibt dann einen Fehler wie folgt aus:
An error has occurred:
Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
Ich bin mir nicht sicher, was ich zu diesem Zeitpunkt tun soll. Würde mich über Hinweise freuen.
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’
- und das ist es, womit pgAdmin versucht hat, eine Verbindung herzustellen. Geben Sie das Passwort despostgres
Benutzers ein.