Где хранится история клиента psql? (~/.история psql не существует!)
пароль отображается в моем приглашении psql (нажав стрелку вверх, чтобы просмотреть предыдущие введенные команды). Поэтому я хотел бы удалить эту запись из клиента psql.
другие ресурсы(1, 2) утверждают, что история клиента psql хранится в ~/.psql_history
файл, однако этот файл просто не существует. (это не в .bash_history
либо)
Так должен быть другой файл, где хранится история приглашения psql, любые идеи куда?
примечание: Я работаю над Ubuntu 12.04
4 ответов
при использовании:
sudo -u postgres psql my_db
вы запускаете psql как пользователь (Linux)postgres
, поэтому .psql_history
файл находится в домашнем каталоге пользователя postgres (например,/home/postgres/.psql_history
), а не в домашнем каталоге пользователя, который вы первоначально вошли.
в некоторых установках, местоположение postgres
домашний каталог пользователя -/var/lib/postgresql
. Вы можете проверить это, запустив:
grep postgres /etc/passwd | cut -d ':' -f 6
имя файла задается внутренней переменной с именем HISTFILE
.
Технически это не должно быть ~/.psql_history.
Регистрация ~/.psqlrc
файл для альтернативной настройки. Например, это может быть:
\set HISTFILE ~/.psql_history -: DBNAME
как говорится в руководство для каждого файла истории базы данных.
у меня есть сервер здесь (Amazon Linux AMI, Centos like), который не имеет домашней папки postgres. Еще он помнит историю psql. С помощью locate
команда я нашел файл истории, расположенный в /var/lib/pgsql93/.psql_history
. На другой машине он находится в /var/lib/pgsql/
. После редактирования этого файла, удаления всех соответствующих строк, история исчезла.
когда команда locate не возвращает результаты, используйте команду updatedb
чтобы создать базу данных для команды locate. Вы не можете запускать эти команды как пользователь Постгреса, кстати.
вам нужно изменить /etc / passwd. Поместите местоположение папки pgsql в строку postgres и попробуйте : grep postgres / etc / passwd / cut-d ': '- f 6