免密使用PostgreSQL數(shù)據(jù)庫內(nèi)置工具的兩種方法
引言
我們在PostgreSQL數(shù)據(jù)庫自帶的各種工具時,每次使用都要輸入數(shù)據(jù)庫密碼。比如在使用pg_dump 備份數(shù)據(jù)庫數(shù)據(jù)時,使用 pg_restore 恢復(fù)數(shù)據(jù)庫數(shù)據(jù)時?;蛘呤窃谑褂?pgbench 工具測試數(shù)據(jù)庫性能時,每跑一個用例都要輸入一次數(shù)據(jù)庫密碼,這里我們通過配置的方式,以后再使用這些工具就不需要輸入數(shù)據(jù)庫密碼了。
我們下面以使用 pg_restore 工具恢復(fù)數(shù)據(jù)為例進行演示。在使用 pg_restore 恢復(fù)數(shù)據(jù)時,如果需要在后臺運行并輸入密碼,可以通過以下方法解決密碼輸入問題,同時將日志輸出到文件中:
方法 1:使用 .pgpass 文件自動輸入密碼
PostgreSQL 支持通過 .pgpass 文件自動提供密碼,避免手動輸入。
步驟:
- 創(chuàng)建
.pgpass文件
在用戶的主目錄下創(chuàng)建.pgpass文件(如果不存在),并設(shè)置權(quán)限為 600(僅用戶可讀寫)。我是使用root用戶執(zhí)行,所以直接在/root/目錄下創(chuàng)建該文件。
touch ~/.pgpass chmod 600 ~/.pgpass
- 編輯
.pgpass文件
在.pgpass文件中添加以下內(nèi)容:
hostname:port:database:username:password
例如:
localhost:5432:database_test:test_user:test_password
hostname: 數(shù)據(jù)庫主機;port: 數(shù)據(jù)庫端口(PostgreSQL數(shù)據(jù)庫默認是5432);database: 數(shù)據(jù)庫名稱;username: 數(shù)據(jù)庫用戶名;password: 數(shù)據(jù)庫密碼;
運行
pg_restore
使用nohup和重定向運行pg_restore,此時不需要手動輸入密碼:
nohup pg_restore -U your_username -d database_name backup_file.dump > restore.log 2>&1 &
我在服務(wù)器上使用 root 用戶成功執(zhí)行該命令,不需要輸入數(shù)據(jù)庫密碼。

方法 2:使用環(huán)境變量 PGPASSWORD
可以通過設(shè)置環(huán)境變量 PGPASSWORD 來提供密碼。
步驟:
設(shè)置環(huán)境變量
在運行pg_restore之前,設(shè)置PGPASSWORD環(huán)境變量:
export PGPASSWORD='your_password'
- 運行
pg_restore
使用nohup和重定向運行pg_restore:
nohup pg_restore -U your_username -d your_database_name your_backup_file.dump > restore.log 2>&1 &
PS:這種方法會將密碼暴露在命令行歷史中,可能存在安全風(fēng)險。
到此這篇關(guān)于免密使用PostgreSQL數(shù)據(jù)庫內(nèi)置工具的兩種方法的文章就介紹到這了,更多相關(guān)免密使用PostgreSQL內(nèi)置工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL數(shù)據(jù)庫從入門到精通實戰(zhàn)
這是一份詳細的PostgreSQL數(shù)據(jù)庫使用指南,涵蓋了核心概念、安裝、基本操作、高級功能、管理與維護、安全、復(fù)制與高可用等多個方面,幫助用戶從入門到精通PostgreSQL數(shù)據(jù)庫,這份指南提供了 PostgreSQL的全面概覽和核心實踐,感興趣的朋友跟隨小編一起看看吧2026-01-01
PostgreSQL 實現(xiàn)distinct關(guān)鍵字給單獨的幾列去重
這篇文章主要介紹了PostgreSQL 實現(xiàn)distinct關(guān)鍵字給單獨的幾列去重,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL數(shù)據(jù)庫事務(wù)出現(xiàn)未知狀態(tài)的處理方法
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫事務(wù)出現(xiàn)未知狀態(tài)的處理方法,需要的朋友可以參考下2017-07-07
Postgresql數(shù)據(jù)庫密碼忘記的詳細解決方法
在使用PostgreSQL數(shù)據(jù)庫時,忘記數(shù)據(jù)庫密碼可能會影響到正常的開發(fā)和維護工作,這篇文章主要介紹了Postgresql數(shù)據(jù)庫密碼忘記的詳細解決方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-06-06
PostgreSQL登陸方式(本地和遠程)的實現(xiàn)
本次分享一下PostgreSQL 的登陸方式,包括本地登錄和遠程登錄,文中通過圖文示例介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11
PostgreSql生產(chǎn)級別數(shù)據(jù)庫安裝要注意事項
這篇文章主要介紹了PostgreSql生產(chǎn)級別數(shù)據(jù)庫安裝要注意事項,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
Postgresql源碼分析returns?setof函數(shù)oracle管道pipelined
這篇文章主要為大家介紹了Postgresql源碼分析returns?setof函數(shù)oracle管道pipelined,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01

