Ich kann mich nicht bei phpPgAdmin anmelden

10

Ich versuche, phpPgAdmin auf meinem Testcomputer einzurichten, damit ich mit PostgreSQL kommunizieren kann, ohne immer die psqlCLI verwenden zu müssen. Ich habe PostgreSQL 9.1 über das RPM-Repository installiert, während ich phpPgAdmin 5.0.4 "manuell" installiert habe (indem ich das Archiv von der phpPgAdmin-Website extrahiert habe). Mein Host-Betriebssystem ist CentOS 6.2.

Ich habe bereits folgende Konfigurationsänderungen vorgenommen:

PostgreSQL

  • Im Inneren habe pg_hba.confich alle METHODs auf md5 geändert .
  • Ich habe dem Postgres-Konto ein Passwort gegeben
  • Ich habe ein neues Konto mit dem Namen "webuser" mit einem Kennwort hinzugefügt (beachten Sie, dass ich dem Konto nichts anderes angetan habe, daher kann ich nicht genau sagen, dass ich weiß, welche Berechtigungen es hat und alles).

phpPgAdmin config.inc.php

  • Die Zeile wurde $conf['servers'][0]['host'] = '';in geändert $conf['servers'][0]['host'] = '127.0.0.1';(ich habe auch versucht, localhost als Wert dort zu verwenden).
  • Set $conf['extra_login_security']zu false.

Immer wenn ich versuche, mich bei phpPgAdmin anzumelden, wird "Anmeldung fehlgeschlagen" angezeigt, selbst wenn ich erfolgreiche Anmeldeinformationen verwende (solche, die funktionieren psql). Ich habe versucht, einige der in Frage 3 in den FAQ genannten Schritte durchzugehen , aber dort hat es bisher nicht gut geklappt. Es hilft wahrscheinlich nicht, dass dies mein erster Arbeitstag mit PostgreSQL ist. Ich bin mit MySQL bestens vertraut, aber ich muss PostgreSQL für das Projekt verwenden, an dem ich arbeite.

Könnte jemand Hilfe zum Einrichten von phpPgAdmin unter CentOS 6.2 anbieten? Wenn ich bisher in meiner Konfiguration etwas furchtbares falsch gemacht habe, ist es keine große Sache, etwas / alles wegzublasen, da ich dort noch keine Daten gespeichert habe!

Ich freue mich über jeden Einblick, den Sie haben könnten!

Devin
quelle

Antworten:

7

Nun, ich habe es herausgefunden - es war eine Kombination aus Unerfahrenheit mit PostgreSQL und sehr unbeschreiblichen Fehlern von phpPgAdmin.

Es stellte sich heraus, dass ich keinen TCP / IP-Zugriff aktiviert hatte, was bedeutete, dass keine PHP-Anwendungen auf die Datenbank (en) zugreifen konnten . Um dies zu beheben, musste ich zwei Änderungen vornehmen:

  • Es schien Arbeit besser , wenn ich festgelegt , listen_addressesum '*'in postgresql.conf. Ich bin mir nicht sicher, ob das unbedingt notwendig ist oder nicht, aber auf einem gut Firewall-Computer wie diesem sollte es kein Problem sein.
  • Ich musste den Befehl setsebool -P httpd_can_network_connect_db 1von einem Terminalfenster aus ausführen , damit Apache tatsächlich mit dem Programm arbeitet und eine Verbindung herstellt. Ich erinnere mich nicht, ob ich PostgreSQL nach diesem Schritt neu starten musste, aber es würde wahrscheinlich nicht schaden.

Eine letzte Anmerkung: Ich sehe ein paar Dinge , was auf eine Linie zu ändern tcpip_socket=truein postgresql.conf. Dies funktioniert anscheinend nicht in PostgreSQL 9.1. Tatsächlich weigerte es sich zu starten, nachdem ich das hinzugefügt hatte. Also tu es nicht.

Wie auch immer, hoffentlich kann dies jemandem helfen, der auf die gleichen Probleme stößt wie ich!

Devin
quelle
Auf Systemen mit Security Enhanced Linux (SELinux) ist das Setzen des httpd_can_network_connect_dbFlags setseboolerforderlich.
postrational
Zur Verdeutlichung muss der TCP / IP-Zugriff nicht unbedingt aktiviert sein, damit phpPgAdmin (oder andere PHP-Skripte) eine Verbindung zu Postgres herstellen können, wenn Sie sich auf demselben Server befinden. Alternativ können Sie eine Verbindung über einen lokalen Unix-Socket herstellen. Wahrscheinlich sind Sie dennoch auf Probleme mit SELinux gestoßen.
Xzilla
0

Ich konnte phpPgAdmin nicht einrichten, bis ich Ihre Lösung sehe. So vervollständigen Sie Ihre Lösung:

  • Es ist nicht sinnvoll, festzulegen listen_address, '*'ob sich Ihr phpPgAdmin-Server auf demselben Computer befindet wie Ihr Postgresql-Server (9.2 für mich). Sie können ihn festlegen localhost.
  • Das einzige, was nützlich ist, ist das Einrichten des Booleschen SELinux.
user176931
quelle
0

Ich habe die obige Lösung ausprobiert, aber immer noch die Meldung "Anmeldung fehlgeschlagen" erhalten. Zum Auflösen musste ich sicherstellen, dass IPv6 auch passwordin der pg_hba.confDatei eingestellt ist. Also: vi /var/lib/pgsql/9.4/data/pg_hba.confund entsprechend bearbeiten. Starten Sie dann sowohl httpd als auch postgresql neu (unabhängig von der verwendeten Version).

Olu
quelle
0

Nun, der Standardbenutzer ist postgres und kein Passwort für eine neue Installation. Geben Sie dies in das Benutzerfeld ein und deaktivieren Sie das Kennwortfeld. Klicken. erledigt.

Wenn Sie pgAdmin4 verwendet und beim ersten Anmelden ein Kennwort eingegeben haben, ist dies das Kennwort, das Sie für den Benutzer postgres verwenden . Geben Sie nun in phppgadmin postgres als Benutzernamen und dieses Passwort in das Passwortfeld ein. Klicken. Erledigt. Vielen Dank

NetBug
quelle
0

Auf einem Server mit GitLab-CE wurde folgende Meldung in der Protokolldatei angezeigt:

tail -f -n 8 /var/log/postgresql/postgresql-*-main.log
......
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 LOG:  provided user name (postgres) and authenticated user name (gitlab-www) do not match
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 FATAL:  Peer authentication failed for user "postgres"
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 DETAIL:  Connection matched pg_hba.conf line 85: "local   all             postgres                                peer"

psqlAlso verbinde ich mich mit via cli und erstelle die fehlende Rolle / den fehlenden Benutzer (in meinem Fall gitlab-www):

# sudo -u postgres psql
CREATE USER "gitlab-www" WITH PASSWORD 'YouKnow..' CREATEDB CREATEROLE SUPERUSER LOGIN;

Und dann öffnet der Anmeldevorgang seine Türen.

fcm
quelle
Im Allgemeinen beschränkt die Peer-Authentifizierung den angegebenen Benutzer darauf, nur über die Befehlszeile (wie bei psql) auf Postgres zugreifen zu können, und funktioniert normalerweise nicht mit phpPgAdmin. Das Erstellen eines neuen Benutzers ist eine gute Lösung. Sie können jedoch auch einfach die Authentifizierungsmethode in der Datei pg_hba.conf ändern.
Xzilla