J'exécute une base de données Heroku Postgres (base de données ) en association avec une application Django. Les documents qui font référence au module complémentaire sont ici . Je pensais que ce serait une question intéressante pour la communauté, car Heroku a averti ses utilisateurs aujourd'hui qu'il migrerait tout du module complémentaire de base de données partagée qui était par défaut.
J'ai du mal à connecter pgAdmin3 à la base de données.
Selon les instructions du lien ci-dessus, j'attrape les informations d'identification de la base de données avec la commande suivante:
$ heroku pg:credentials HEROKU_POSTGRESQL_OLIVE
J'utilise une installation homebrew de Postgresql sur Mac OSX.
En attendant, j'ai:
- SSL activé dans mon pg_postgresql.conf;
- ajouté le paramètre:
listen_addresses = '*'
- et ajouté
host all all 0.0.0.0/0 md5
- et redémarré mon serveur postgres.
Ensuite, je vais à pgAdmin3 et sélectionnez File > Add Server
.
J'entre les informations d'identification fournies par Heroku comme suit (le premier est le nom des informations d'identification Heroku, le second est le nom du champ pgAdmin):
Dans l'onglet "Propriétés":
- dbname dans Name;
- hôte en hôte;
- port dans le port;
- Je laisse le champ pgAdmin pour "Maintenance Database" vide;
- l'utilisateur en nom d'utilisateur;
- mot de passe dans Password;
Dans l'onglet SSL:
- Im le champ pour SSL, je sélectionne "exiger" (comme indiqué par Heroku).
J'appuie sur Entrée, et pgAdmin réfléchit, puis lance une erreur comme suit:
An error has occurred:
Error connecting to the server: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
Je ne sais pas quoi faire à ce stade. J'apprécierais tous les conseils.
la source
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’
- et c'est à cela que pgAdmin a essayé de se connecter. Fournissez le mot de passe de l'postgres
utilisateur.Réponses:
Merci à @araqnid sur Stack Overflow pour la réponse ici .
Verbatim cité à partir de là:
Ouvrez les "Propriétés" du serveur Heroku dans pgAdminIII et modifiez la valeur "Maintenance DB" pour qu'elle soit le nom de la base de données à laquelle vous souhaitez vous connecter. La configuration par défaut convient aux administrateurs de bases de données et autres qui peuvent se connecter à n'importe quelle base de données sur le serveur, mais apparemment, ce n'est pas vrai dans votre cas.
Cela a fonctionné pour moi!
la source
FATAL: permission denied for database "postgres"
indique qu'il essaie de se connecter à la base de données postgres. Nous n'accordons en effet pas de tels privilèges. Vous pouvez cependant vous connecter à votre propre base de données, cela devrait convenir. Vous pouvez le prouver en vous connectant via la psql CLI.Il semble que vous définissiez heroku
dbname
sur quelque chose appeléName
pgadmin. Cela semble être le "nom de connexion" pour ce que vous créez là (quelque chose d'arbitraire pour y faire référence plus tard), mais n'y a-t-il pas un endroit où vous pouvez définir le nom de la base de données réelle, afin qu'il ne soit pas défini par défautpostgres
?Je ne suis pas un utilisateur de pgadmin, mais je recherche simplement les documents trouvés [1] qui spécifient ce qui suit:
The maintenance DB field is used to specify the initial database that pgAdmin connects to
.Pourriez-vous essayer cela?
[1] http://www.pgadmin.org/docs/dev/connect.html
la source
Exécutez la commande suivante pour obtenir les informations d'identification de la base de données de Heroku:
Ensuite, vous pouvez utiliser un outil graphique comme PG Commander ou PGAdmin pour vous connecter à la base de données.
la source