パスワードはpsqlプロンプトに表示されます(上矢印を押して、以前に入力したコマンドを表示します)。そのため、psqlクライアントからそのエントリを削除したいと思います。
他のリソース( 1 、 2 )は、psqlクライアントの履歴が~/.psql_history
ファイルであると主張していますが、このファイルは単に存在しません。 (.bash_history
にもありません)
psql Promptの履歴が保存されている別のファイルが必要です、何かアイデアはありますか?
注:私はUbuntu 12.04
に取り組んでいます
使用する場合:
Sudo -u postgres psql my_db
(Linux)ユーザーpostgres
としてpsqlを実行するため、.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
手動 データベースごとの履歴ファイルで述べたように。
ここにはpostgresホームフォルダーのないサーバー(Amazon Linux AMI、Centosなど)があります。それでも、psqlの歴史を覚えています。 locate
コマンドを使用して、/var/lib/pgsql93/.psql_history
にある履歴ファイルを見つけました。別のマシンでは、/var/lib/pgsql/
にあります。このファイルを編集し、関連するすべての行を削除すると、履歴はなくなりました。
Locateコマンドが結果を返さない場合、updatedb
コマンドを使用して、locateコマンド用のデータベースを作成します。これらのコマンドをユーザーpostgres btwとして実行することはできません。
/ etc/passwdを変更する必要があります。 pgsqlフォルダーの場所をpostgres行に入れて試してください:grep postgres/etc/passwd | cut -d ':' -f 6