密碼在我的psql提示符中可見(通過向上箭頭查看以前輸入的命令)。所以我想從psql客戶端刪除該條目。psql客戶端歷史記錄保存在哪裏? (〜/ .psql_history不存在!)
其他資源(1,2)聲稱psql客戶端歷史保存在~/.psql_history
文件中,但該文件根本就不存在。 (它不在.bash_history
要麼)
所以必須有另一個文件保存psql提示的歷史,任何想法在哪裏?
注:我的工作Ubuntu 12.04
密碼在我的psql提示符中可見(通過向上箭頭查看以前輸入的命令)。所以我想從psql客戶端刪除該條目。psql客戶端歷史記錄保存在哪裏? (〜/ .psql_history不存在!)
其他資源(1,2)聲稱psql客戶端歷史保存在~/.psql_history
文件中,但該文件根本就不存在。 (它不在.bash_history
要麼)
所以必須有另一個文件保存psql提示的歷史,任何想法在哪裏?
注:我的工作Ubuntu 12.04
當你使用:
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
作爲將來的參考:您可以通過執行'sudo su postgres'切換到'postgres'用戶名,然後執行'cat〜/ .psql_history'。但是,如果你使用'〜postgresql'並點擊tab(波浪擴展),你甚至不需要切換用戶,然後擴展到'/ var/lib/postgresql /'。 '.psql_history'文件也位於後一個目錄中。 – Bentley4
真正的問題是:爲什麼'sudo'呢? 'psql my_db postgres'會做同樣的事情。 –
原因是,當我做'psql my_db postgres'時,我得到:'psql:FATAL:對於用戶「postgres」的對等認證失敗' – Bentley4
文件名由名爲HISTFILE
內部變量給出。 從技術上講,它不一定是~/.psql_history.
檢查~/.psqlrc
文件以獲取備用設置。例如,它可能是:
作爲 manual爲每個數據庫歷史文件中提到\設置HISTFILE〜/ .psql_history-:DBNAME
。
我這裏有一臺服務器(亞馬遜的Linux AMI,Centos下等)不具有Postgres的主文件夾。它還記得psql的歷史。使用locate
命令,我發現位於/var/lib/pgsql93/.psql_history
的歷史文件。在另一臺機器上,它在/var/lib/pgsql/
。編輯這個文件後,刪除所有相關的行,歷史消失了。
當locate命令未返回結果時,請使用命令updatedb
爲locate命令創建數據庫。您不能以用戶postgres順便運行這些命令。
也許你正在執行psql作爲一個不同的用戶? –
我不這麼認爲,以防萬一,我登錄到我的提示像這樣'sudo -u postgres psql my_db' – Bentley4
這肯定是運行psql作爲用戶'postgres'。所以歷史可能存儲在'〜postgres/.psql_history'中。 – qqx