Where is psql client history kept? (~/.psql_history non-existent!)
A password is visible in my psql prompt (by pushing up arrow to view previous inputted commands). So I would like to delete that entry from the psql client.
Other resources(1, 2) claim that psql client history is kept in is a ~/.psql_history
file, however this file is simply not there. (it's not in .bash_history
either)
So there must be another file where the history of psql prompt is kept, any ideas where?
I log in to my prompt like this
sudo -u postgres psql my_db
Note: I am working on Ubuntu 12.04
When you use:
sudo -u postgres psql my_db
you run psql as the (Linux) user postgres
, therefor the .psql_history
file is in the home directory of the postgres user (e.g. /home/postgres/.psql_history
), not in the home directory of the user you originally logged in with.
In some installations, the location of the postgres
user's home directory is /var/lib/postgresql
. You can check this by running:
grep postgres /etc/passwd | cut -d ':' -f 6
The filename is given by an internal variable named HISTFILE
.
Technically it doesn't have to be ~/.psql_history.
Check the ~/.psqlrc
file for an alternate setting. For example it might be:
\set HISTFILE ~/.psql_history- :DBNAME
as mentioned in the manual for a per-database history file.