it-swarm.com.de

Wo wird die psql-Client-Historie aufbewahrt? (~/.psql_history nicht vorhanden!)

Ein Passwort ist in meiner psql-Eingabeaufforderung sichtbar (durch Drücken des Pfeils nach oben, um die zuvor eingegebenen Befehle anzuzeigen). Also möchte ich diesen Eintrag aus dem Psql-Client löschen. 

Andere Ressourcen ( 1 , 2 ) behaupten, dass der Psql-Clientverlauf in einer ~/.psql_history-Datei gespeichert wird. Diese Datei ist jedoch einfach nicht vorhanden. (es ist auch nicht in .bash_history)

Also es muss eine andere Datei geben, in der die Historie von psql Prompt aufbewahrt wird und welche Ideen wo?

Hinweis: Ich arbeite an Ubuntu 12.04

28
Bentley4

Wenn Sie verwenden:

Sudo -u postgres psql my_db

wenn Sie psql als (Linux) Benutzer postgres ausführen, befindet sich die .psql_history-Datei im Ausgangsverzeichnis des postgres-Benutzers (z. B. /home/postgres/.psql_history), nicht im Ausgangsverzeichnis des Benutzers, mit dem Sie sich ursprünglich angemeldet haben.

In einigen Installationen lautet der Ort des Home-Verzeichnisses postgres/var/lib/postgresql. Sie können dies überprüfen, indem Sie Folgendes ausführen:

grep postgres /etc/passwd | cut -d ':' -f 6
37

Der Dateiname wird durch eine interne Variable mit dem Namen HISTFILE..__ angegeben. Technisch muss es nicht ~/.psql_history. sein.

Überprüfen Sie die ~/.psqlrc-Datei auf eine andere Einstellung. Zum Beispiel könnte es sein:

\ set HISTFILE ~/.psql_history-: DBNAME

wie im manual für eine Datenbankdatei pro Datenbank erwähnt.

9
Daniel Vérité

Ich habe hier einen Server (Amazon Linux AMI, Centos like), der keinen Postgres-Home-Ordner hat. Es erinnert sich immer noch an die Geschichte von psql. Mit dem Befehl locate habe ich die Protokolldatei in /var/lib/pgsql93/.psql_history gefunden. Auf einem anderen Rechner ist es in /var/lib/pgsql/. Nach dem Bearbeiten dieser Datei und dem Entfernen aller relevanten Zeilen war der Verlauf weg.

Wenn der Befehl locate keine Ergebnisse zurückgibt, erstellen Sie die Datenbank mit dem Befehl updatedb für den Befehl locate. Sie können diese Befehle nicht als Benutzer postgres btw ausführen. 

0
SPRBRN

Sie müssen /etc/passwd.Put. Den Ort Ihres pgsql-Ordners in der postgres-Zeile ändern und versuchen: cut -d ':' -f 6

0
melocoton