Ich habe eine kostenlose RHEL 6-Instanz auf Mikroebene, auf der postgresql 9.2 mit den yum-Anweisungen installiert ist: Ссылка
Und ich kann mich lokal mit dem PG-Server verbinden, indem ich diesen auf dem Server verwende:
%Vor%Allerdings habe ich nie erfolgreich außerhalb der Box verbunden. Die Fehlermeldung sieht wie folgt aus:
%Vor%Ich habe viele verschiedene Wege ausprobiert. So sehen meine Konfigurationsdateien jetzt aus:
/var/lib/pgsql/9.2/data/postgresql.conf:
%Vor%/var/lib/pgsql/9.2/data/pg_hba.conf:
%Vor%Ich habe versucht, die obige Adresse auf 0.0.0.0/0 zu setzen, aber ID hat nicht funktioniert.
Und jedes Mal, wenn ich eine Änderung vorgenommen habe, habe ich das Programm neu gestartet.
%Vor%In der Sicherheitsgruppe dieser EC2-Instanz kann ich diese Regel bereits sehen:
%Vor%Der Befehl netstat zeigt an, dass der Port bereits geöffnet ist:
%Vor%Um BMA's Frage zu beantworten:
Wenn ich den Befehl nmap lokal auf dem Server starte, scheint es so zu sein, dass er durch internen DNS zu einem anderen Host geht, auf dem 5432 geöffnet ist:
%Vor%Und der Befehl iptables gibt folgende Ausgabe
%Vor%[Bearbeitet nach dem Hinzufügen nach dem Vorschlag von bma]
iptables sieht nach dem neuen Zusatz so aus:
%Vor%Aber ich kann immer noch nicht verbinden (gleicher Fehler). Was könnte das fehlende Stück hier sein?
Ich habe die Lösung für dieses Problem gefunden. Zwei Dinge sind erforderlich.
Verwenden Sie einen Texteditor, um pg_hba.conf zu ändern. Suchen Sie die Zeile Host alle 127.0.0.1/0 md5. Direkt darunter fügen Sie diese neue Zeile hinzu: host all all 0.0.0.0/0 md5
Bearbeiten der PostgreSQL postgresql.conf-Datei:
Verwenden Sie einen Texteditor, um postgresql.conf zu ändern. Suchen Sie die Zeile, die mit #listen_addresses = 'localhost' beginnt. Entfernen Sie die Kommentarzeichen für die Zeile, indem Sie # löschen, und ändern Sie localhost in . Die Zeile sollte jetzt so aussehen: listen_addresses = '' # welche IP-Adresse (n) zu hören ist;.
Starten Sie jetzt einfach Ihren postgres-Dienst und es wird eine Verbindung hergestellt
Haben Sie eine Firewall, die den Port 5432 blockiert? Eine schnelle nmap zeigt, dass es gefiltert wird.
%Vor%Was zeigen die iptables auf Ihrem EC2 für Port 5432?
%Vor%[nachdem OP weitere Details hinzugefügt hat]
Netstat zeigt, dass es zuhört, aber die Firewall-Ausgabe sieht nicht so aus, als wäre der 5432-Port offen (ich gestehe, dass ich nicht viel von einem Netzwerk-Typ bin). In Bezug auf einige meiner Notizen aus früheren Installationen müssen Sie möglicherweise den EC2-Port 5432 zu Ihrer IP-Adresse öffnen.
Um den Zugriff der Firewall zu ermöglichen, ersetzen Sie IHR-REMOTE-IP durch die IP-Adresse, von der Sie eine Verbindung herstellen:
%Vor%- ausgehender Zugriff
%Vor% Was zeigt iptables -nvL
danach? Können Sie eine Verbindung herstellen?
Sieht aus, dass Ihre pg_hba.conf das "+" hinter dem Gruppennamen verfehlt. probiere
aus # TYPE DATABASE USER ADDRESS METHOD
host all pgadmin+ 0.0.0.0/24 trust
host all all [my ip]/24 md5
Die pg_hba.conf erläutert den Benutzer:
Der Wert all gibt an, dass es mit allen Benutzern übereinstimmt. Andernfalls ist dies entweder der Name eines bestimmten Datenbankbenutzers oder ein Gruppenname, dem + vorangestellt ist. (Denken Sie daran, dass es in PostgreSQL keine wirkliche Unterscheidung zwischen Benutzern und Gruppen gibt. Ein + Zeichen bedeutet "Übereinstimmung mit einer der Rollen, die direkt oder indirekt Mitglieder dieser Rolle sind", während ein Name ohne + -Zeichen nur dieser bestimmten Rolle entspricht. )
Tags und Links postgresql amazon-ec2 pgadmin