Comment connecter pgAdmin III (Windows) pour postgresql (Linux virtual box)
J'ai un postgresql
démon sur mon virtuel sous Linux, et à peine installé pgAdmin III sur la machine Windows. Maintenant, je voudrais configurer la première connexion.
Ce que j'ai fait jusqu'à présent:
- J'ai édité
/etc/postgresql/9.1/main/pg_hba.conf
et ajouté une ligne pour faire le démon accepter les connexions à partir de ma machine Windows:
host all all 192.168.123.45/32 md5
- J'ai mis une coque mot de passe pour l'utilisateur du système
postgres
(sudo passwd postgres
) - Edit: cela semble être hors de propos
J'ai copié/usr/share/postgresql/9.1/pg_service.conf.sample
à/etc/postgresql-common/pg_service.conf
et décommenté l'exemple de service, de me donner
[postgres]
dbname=postgres
user=postgres - Edit: cela semble être hors de propos
J'ai mis une ligne en/etc/environment
pour pointer vers lepgservice.conf
fichier:
PGSERVICEFILE=/etc/postgresql-common/pg_service.conf
(qui fonctionne; quand j'ai dupliqué la session PuTTY, il avait cette variable) - J'ai redémarré le serveur de base de données après chaque changement.
sudo /etc/init.d/postgresql restart
- Enfin, je restartet la boîte Linux,
Le serveur semble avoir redémarré avec succès:
[ ok ] Restarting PostgreSQL 9.1 database server: main.
Cependant, lorsque j'essaie de me connecter au service, pgAdmin III me donne un message d'erreur:
Erreur de connexion au serveur: définition de " service "postgres" n'est pas trouvée.
dmesg | grep postgres
donne-moi une seule ligne:
[ 18.054965] postgres (2242): /proc/2242/oom_adj is deprecated, please use /proc/2242/oom_score_adj instead.
Je n'ai aucune idée si postgresql
utilise mon pq_service.conf
à tous, ou tout autre chose est le problème; toute aide est appréciée ...
Edit:
Ma question initiale, "How can I know whether postgresql uses my pg_service.conf file?
", semble être lui répondit: - il n'a tout simplement pas. Je n'arrive toujours pas à se connecter, mais maintenant, la question ne correspond pas avec les messages d'erreur de plus.
J'ai enlevé le "Service" à l'entrée de mon "Nouveau Serveur d'Enregistrement des données". Maintenant j'ai une autre erreur de quelque chose comme "authentification par mot de passe pour l'utilisateur >>postgres<< a échoué". Je suis tout à fait sûr le mot de passe est correct, je l'ai juste mis ... et je l'ai testé en commentant ma clé ssh de authorized_keys
fichier.
Je serais heureux de vous connecter avec ma clé ssh, mais cela semble difficile. Avec PuTTY, ma clé est prise à partir de Spectacle, et je me suis connecté sans problème; pgAdmin parle de "SSH tunnels", mais je ne trouve normalement pas besoin de tunnels pour cette machine locale ...
J'ai essayé de créer un tunnel de toute façon.
- Session PuTTY:
- Port Source est
5432
- destination est
my-vbox.host.name:5432
- Port Source est
- Dans pgAdmin, "Tunnel SSH":
- Nom d'utilisateur
postgres
- l'aide d'une fiche d'Identité
- Tunnel hôte
localhost
→ erreur:
"SSH error: Could not connect to socket with error code 10051
" - Tunnel hôte
localhost:5432
→ erreur:
"SSH error: Unable to resolve host: localhost:5432
" - Tunnel hôte
127.0.0.1:5432
→ erreur:
"SSH error: Unable to resolve host: 127.0.0.1:5432
"
- Nom d'utilisateur
Comment diable est-ce censé être configuré?!
- En fait
pg_service.conf
est un standard de fichier de config mais pourlibpq
les clients. Et n'a aucun effet sur le côté serveur. - Merci, j'ai oublié le "Service" et de la mise à jour de ma question.
- et je l'ai testé en commentant ma clé ssh: vous êtes à la confusion de l' mot de passe de la base de données postgres utilisateur est ce que l'erreur est sur, avec le mot de passe de postgres utilisateur de linux, ce qui est pertinent pour le ssh, mais pas pour le serveur postgresql.
- Oui, mais quand dans un shell en tant qu'utilisateur
postgres
, psql ne pas poser d'autres questions quand j'ai l'intention d'agir en tant que base de données de l'utilisateurpostgres
. Lorsque le système de l'utilisateurwww-data
pistes de Zope, et la base de données de l'utilisateurwww-data
est propriétaire de la base de données, tout ce que je besoin de se connecter est le nom de base de données. Ces deux sont des choses différentes, mais reliées. - c'est le pg_hba.conf qui contrôle tout cela. Lorsque vous définissez
md5
que l'auth méthode, vous dites que vous souhaitez que tous les utilisateurs de 192.168.123.45 pour toutes les bases de données à fournir un mot de passe. Le remplacer partrust
pour éviter le mot de passe si c'est ce qui est le blocage de vous.
Vous devez vous connecter pour publier un commentaire.
J'ai enfin réussi à se connecter en tant qu'utilisateur bd
tobias
(je n'ai jamais eu de problèmes pour se connecter localement, avecpsql
).Après cela, je pourrais connecter en tant que
tobias
, en utilisant le mot de passe défini.La "Maintenance DB" se trouve être
template1
; je n'ai pas essayer de changer cela.Pour de plus amples référence - j'ai activé
log_connections
dans/etc/postgresql/9.1/main/postgresql.conf
et regardé le journal: