2016-04-13 17 views
1

Ich habe die Vagrant-Maschine mit Postgres darauf. Ich brauche eine Verbindung mit dieser Datenbank mit einigen externen Tools (zB. Pgmodeler, keetle). Also ich anfangen Tunnel mit:Vagrant postgres ssh tunnel

ssh -L 5433:127.0.0.1:5432 [email protected] -i puphpet/files/dot/ssh/id_rsa 

Dann versuche ich mit dem Befehl um sich einzuloggen:

psql -h 127.0.0.1 -p 5433 -U postgres postgres 

Und ich erhalte eine Fehlermeldung:

FATAL: password authentication failed for user "postgres" 

Ich bin ein wenig verwirrt, weil Früher hat es funktioniert, und jetzt nicht. Ich habe versucht, ein Benutzerkennwort zu setzen, aber es hat nicht funktioniert. Wo soll ich nach einem Problem suchen?

+0

Warum nicht Häfen mit vagrant weiterleiten? https://www.vagrantup.com/docs/networking/forwarded_ports.html – zerkms

+0

OK. Also habe ich deine Lösung versucht, aber das Problem besteht immer noch. Ich denke, es gibt ein Problem in Postgres. Vielleicht in der Datei pg_hba.conf? – doubleB

+0

Es ist ein Pg-Konfigurationsproblem. Zeige die pg_hba.conf der Landstreichermaschine. –

Antwort

1

Sie müssen die pg_hba.conf Datei Ihres postgres-Servers anpassen, um postgres mitzuteilen, wo Verbindungen für welche Benutzer zulässig sind. In Debian-ähnlichen Distributionen finden Sie diese Datei in /etc/postgresql/9.1/main/pg_hba.conf.

Wenn mit vagabundierenden Entwicklung ich in der Regel den folgenden Eintrag in pg_hba.conf verwenden, die alle Benutzer ermöglicht die Verbindung von überall ohne Passwort

# IPv4 connections from everywhere: 
host all    all    0.0.0.0/0    trust 

NIE diese Zeile auf einem Produktionsserver NUTZEN

Oben gibt es die folgende Zeile in meinem Vagrantfile zum Weiterleiten des Ports

Vagrant.configure(2) do |config| 
    # more stuff 
    config.vm.network "forwarded_port", guest: 5432, host: 5433, host_ip: "127.0.0.1" 
end 

Vergessen Sie nicht, die host_ip auf localhost zu setzen, sonst bindet postgres an alle Netzwerkschnittstellen Ihres lokalen Rechners.

+0

OK. Ich habe das Problem gefunden. Lokal habe ich auch Postgres installiert. Also musste ich es ausschalten und es funktioniert jetzt. Aber kann ich beides nicht haben? – doubleB

+0

Sicher können Sie nur den Host-Port in Vagrantfile zu z. 5433 wie du es mit deinem Tunnel gemacht hast. – dahrens