2013-08-09 8 views
5

Ich bin neu in dieser Art von Datenbank und ich versuche, es über die Befehlszeile mit Angabe von psql zu verbinden, und geben Sie dann das Passwort als leer. Ich bekomme den obigen Fehler (im Titel dieser Frage).psql fe_sendauth kein Passwort angegeben

Ich weiß nicht, was das Standardkennwort ist.

pg_hba Datei:

 IPv4 local connections: 
    host all    all    127.0.0.1/32   trust 
    # IPv6 local connections: 
    host all    all    ::1/128     trust 
    # Allow replication connections from localhost, by a user with the 
    # replication privilege. 
    host replication  DIMA  127.0.0.1/32   trust 
    host replication  DIMA  ::1/128     trust 

postgresql.config

listen_addresses = '*'  # what IP address(es) to listen on; 
        # comma-separated list of addresses; 
        # defaults to 'localhost', '*' = all 
        # (change requires restart) 
port = 5432    # (change requires restart) 

ich den Server auf diese Weise neu starten:

C:\metasploit\postgresql\bin\pg_ctl -D "C:\metasploit\postgresql\myData" -l logfile start 

Alles, was ich will, ist die Datenbank eingeben und mein Passwort ändern . Und vorzugsweise zur Eingabe des PgAdmin-III (in GUI-Form)

Antwort

0

Wenn Sie trust Authentifizierung (die Sie nur für die Entwicklung verwenden sollten, wenn dann) Sie psql nicht aufgefordert werden, ein Kennwort einzugeben.

Ich würde sagen, Sie haben den Server nicht ordnungsgemäß neu gestartet. Vielleicht anstelle von start verwenden?

+0

Ich bekomme diesen Fehler auch. Es hat nichts mit dem Neustart der Datenbank zu tun. PG fragt nach einem Passwort mit 'psql --username = postgres --host = localhost', aber nicht mit' psql --username = postgres', obwohl die beiden logisch äquivalent sein sollten. – Cerin

+1

@Cerin Die beiden sind auf Plattformen, die Unix-Sockets unterstützen, nicht gleichwertig. Letzterer verwendet TCP/IP für jede IP-Adresse, die localhost als verrechnet. Ersteres ist eigentlich wie 'psql --username = postgres --host =/var/run/pgsql' (oder wo auch immer' unix_socket_directory' ist) zu sagen. Ich mag diese Benutzeroberfläche nicht sehr, aber sie kann jetzt nicht wirklich geändert werden. Unter Windows wären sie gleichwertig, da sie keine Unix-Sockets unterstützen. –

0

Wie Craig sagte, haben Sie wahrscheinlich den Server nicht neu gestartet und Sie sollten Neustart anstelle von Start verwenden. (Reload funktioniert auch, aber nicht so sicher unter Windows)

Aber das ist nicht dein Problem. Das Schlüsselproblem ist mit ziemlicher Sicherheit, dass Sie keine Verbindung zu localhost herstellen, und Sie haben Leitungen in Ihrem pg_hba.conf, die Kennwörter von anderen Hosts erfordern.

Hinweis: Wenn Sie eine Verbindung zu einer externen IP-Adresse herstellen, treffen Sie eine andere oder allgemeinere Regel.

Dieser Fehler bedeutet im Grunde genommen, dass die Datei pg_hba.conf auf Kennwortauthentifizierung festgelegt ist, aber kein Kennwort angegeben wurde. Wenn Sie das Problem nicht schnell finden können, sollte die IP-Adresse, von der die Verbindung stammt, in der postgresql-Protokolldatei enthalten sein.

Wie für die Verwendung von Vertrauen, sollten Sie es sicher zurück ändern, nachdem Sie Ihr Passwort geändert haben. Normalerweise würde ich Craig zustimmen, dass man die Vertrauensauthentifizierung außerhalb der Entwicklung nicht verwenden sollte, aber es ist ein legitimer Ansatz für das Zurücksetzen von Kennwörtern wichtiger Benutzer, und unter Windows muss dies auf eine gut unterstützte Weise auf der Plattform geschehen.

Als letzte Anmerkung ist die Frage, wie Sie sich anmelden. Wenn Sie dies einstellen, sollten Sie wahrscheinlich psql -h 127.0.0.1 [dbname] verwenden, um sicherzustellen, dass Windows nicht etwas seltsam wie versuchen, eine Verbindung mit dem Computernamen (und damit externe IP).

Verwandte Themen