免密使用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?16?新特性之正態(tài)分布隨機數(shù)函數(shù)的示例
這篇文章主要介紹了PostgreSQL?16?新特性之正態(tài)分布隨機數(shù)函數(shù),PostgreSQL 16 新增了一個內(nèi)置的 random_normal() 函數(shù),用于生成這種隨機數(shù),通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-01-01PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說明
這篇文章主要介紹了PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12PostgreSQL進行數(shù)據(jù)導(dǎo)入和導(dǎo)出的操作代碼
在數(shù)據(jù)庫管理中,數(shù)據(jù)的導(dǎo)入和導(dǎo)出是非常常見的操作,特別是在 PostgreSQL 中,提供了多種工具和方法來實現(xiàn)數(shù)據(jù)的有效管理,本文將詳細介紹在 PostgreSQL 中如何進行數(shù)據(jù)導(dǎo)入和導(dǎo)出,并給出具體的命令及示例,需要的朋友可以參考下2024-10-10PostgreSQL?10分區(qū)表及性能測試報告小結(jié)
PostgreSQL的分區(qū)表跟先前版本一樣,也要先建立主表,然后再建立子表,使用繼承的特性,但不需要手工寫規(guī)則了,目前支持range、list分區(qū),10正式版本發(fā)布時不知會不會支持其它方法,感興趣的朋友跟隨小編一起看看吧2022-01-01PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用
這PostgreSQL中提供了窗口函數(shù),一個窗口函數(shù)在一系列與當(dāng)前行有某種關(guān)聯(lián)的表行上進行一種計算。下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用的相關(guān)資料,需要的朋友可以參考下2019-03-03