免密使用PostgreSQL數(shù)據(jù)庫內置工具的兩種方法
引言
我們在PostgreSQL數(shù)據(jù)庫自帶的各種工具時,每次使用都要輸入數(shù)據(jù)庫密碼。比如在使用pg_dump 備份數(shù)據(jù)庫數(shù)據(jù)時,使用 pg_restore 恢復數(shù)據(jù)庫數(shù)據(jù)時?;蛘呤窃谑褂?pgbench 工具測試數(shù)據(jù)庫性能時,每跑一個用例都要輸入一次數(shù)據(jù)庫密碼,這里我們通過配置的方式,以后再使用這些工具就不需要輸入數(shù)據(jù)庫密碼了。
我們下面以使用 pg_restore 工具恢復數(shù)據(jù)為例進行演示。在使用 pg_restore 恢復數(shù)據(jù)時,如果需要在后臺運行并輸入密碼,可以通過以下方法解決密碼輸入問題,同時將日志輸出到文件中:
方法 1:使用 .pgpass 文件自動輸入密碼
PostgreSQL 支持通過 .pgpass 文件自動提供密碼,避免手動輸入。
步驟:
- 創(chuàng)建
.pgpass文件
在用戶的主目錄下創(chuàng)建.pgpass文件(如果不存在),并設置權限為 600(僅用戶可讀寫)。我是使用root用戶執(zhí)行,所以直接在/root/目錄下創(chuàng)建該文件。
touch ~/.pgpass chmod 600 ~/.pgpass
- 編輯
.pgpass文件
在.pgpass文件中添加以下內容:
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 &
我在服務器上使用 root 用戶成功執(zhí)行該命令,不需要輸入數(shù)據(jù)庫密碼。

方法 2:使用環(huán)境變量 PGPASSWORD
可以通過設置環(huán)境變量 PGPASSWORD 來提供密碼。
步驟:
設置環(huán)境變量
在運行pg_restore之前,設置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:這種方法會將密碼暴露在命令行歷史中,可能存在安全風險。
到此這篇關于免密使用PostgreSQL數(shù)據(jù)庫內置工具的兩種方法的文章就介紹到這了,更多相關免密使用PostgreSQL內置工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL?16?新特性之正態(tài)分布隨機數(shù)函數(shù)的示例
這篇文章主要介紹了PostgreSQL?16?新特性之正態(tài)分布隨機數(shù)函數(shù),PostgreSQL 16 新增了一個內置的 random_normal() 函數(shù),用于生成這種隨機數(shù),通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-01-01
PostgreSQL流復制參數(shù)max_wal_senders的用法說明
這篇文章主要介紹了PostgreSQL流復制參數(shù)max_wal_senders的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
PostgreSQL進行數(shù)據(jù)導入和導出的操作代碼
在數(shù)據(jù)庫管理中,數(shù)據(jù)的導入和導出是非常常見的操作,特別是在 PostgreSQL 中,提供了多種工具和方法來實現(xiàn)數(shù)據(jù)的有效管理,本文將詳細介紹在 PostgreSQL 中如何進行數(shù)據(jù)導入和導出,并給出具體的命令及示例,需要的朋友可以參考下2024-10-10
PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用
這PostgreSQL中提供了窗口函數(shù),一個窗口函數(shù)在一系列與當前行有某種關聯(lián)的表行上進行一種計算。下面這篇文章主要給大家介紹了關于PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用的相關資料,需要的朋友可以參考下2019-03-03

