2013-07-29 11 views
21

パスワードはpsqlのプロンプトに表示されます(前に入力したコマンドを表示するために矢印を押してください)。だから私はそのエントリをpsqlクライアントから削除したいと思います。psqlクライアントの履歴はどこに保存されていますか? (〜/ .psql_history存在しません!)

その他のリソース(12)は、psqlクライアントの履歴が保存されていると主張していますが、このファイルは単に~/.psql_historyというファイルです。 (.bash_historyのどちらでもない)

so psqlプロンプトの履歴が保存されている別のファイルが必要です。

注:私はUbuntu 12.04

+0

多分psqlを別のユーザとして実行しているのでしょうか? –

+0

私はそうではないと思っています。ちょうどその場合、私はこのsudo -u postgres psql my_db'のようなプロンプトにログインします – Bentley4

+5

これは間違いなくpsqlを 'postgres'ユーザとして実行しています。したがって履歴はおそらく '〜postgres/.psql_history'に格納されます。 – qqx

答えて

28

使用:

sudo -u postgres psql my_db 

(Linux)のユーザーpostgres、その.psql_historyファイルはpostgresユーザ(例えば/home/postgres/.psql_history)のホームディレクトリにある、ないのホームディレクトリにあるようあなたはpsqlを実行します最初にログインしたユーザー

一部のインストールでは、postgresユーザーのホームディレクトリの場所は/var/lib/postgresqlです。

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

今後の参考資料として、 'sudo su postgres'を実行して' postgres'ユーザ名に切り替えた後、 'cat〜/ .psql_history'を実行することができます。しかし、 '〜postgresql'を実行してタブ(ティルダ展開)を押すと、ユーザを切り替える必要はなく、'/var/lib/postgresql/'に展開されます。 '.psql_history'ファイルは後者のディレクトリにもあります。 – Bentley4

+0

本当の疑問は、なぜ「sudo」なのですか? 'psql my_db postgres'も同じことをします。 –

+0

私は 'psql my_db postgres'を実行すると、' psql:FATAL:ユーザーのピア認証に失敗しました。 "postgres" ' – Bentley4

6

に取り組んでいますが、ファイル名はHISTFILEという内部変数で与えられます。 技術的には必ずしもそうである必要はありません~/.psql_history.

代替設定のために~/.psqlrcファイルを確認してください。例えば、それは次のようになります。

\セットHISTFILE〜/ .psql_history-:DBNAME

ごとのデータベース履歴ファイルのためmanualで述べたように。

+1

'〜/ .psqlrc'ファイルがありません('〜 'に' ls -a'を実行しました)。プロンプトの中で、 'SHOW hba_file;'を実行して 'pg_hba.conf'ファイルの場所を見つけることができます。 'HISTFILE'を表示する同等のコマンドはありますか?( 'SHOW hist_file;'または 'SHOW HISTFILE;'は機能しません) – Bentley4

+0

'echo $ PSQL_HISTORY'はあなたの.psql_historyへの代替パスを表示しますか? – bma

+1

これは単に空白行を出力します。しかし、私は解決策を見つけました.qqxの答えを見てください。 – Bentley4

0

ここにはpostgresホームフォルダのないサーバー(Amazon Linux AMI、Centosのようなもの)があります。それでもpsqlの歴史を覚えています。 locateコマンドを使用して、/var/lib/pgsql93/.psql_historyにある履歴ファイルが見つかりました。別のマシンでは/var/lib/pgsql/にあります。このファイルを編集した後、関連するすべての行を削除すると、履歴は消えました。

locateコマンドで結果が返されない場合は、コマンドupdatedbを使用してlocateコマンドのデータベースを作成します。これらのコマンドは、ユーザーpostgres btwとして実行することはできません。

関連する問題