Postgresql

無法使用 pg_dump 備份 postgres 13

  • April 10, 2022

我正在嘗試在 MacOS 上使用以下命令備份 postgresql 13 數據庫:

PGPASSWORD=“my_password” /Library/PostgreSQL/13/bin/pg_dump -h xx.xx.xx.xx -p 5432 -U postgres dbname > my_backup.backup

我收到以下錯誤:

pg_dump: error: connection to database "dbname" failed: could not initiate GSSAPI security context:  The operation or option is not available: Credential for asked mech-type mech not found in the credential handle
FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

我正在Google上查找這個錯誤,但我還沒有找到解決方案。我提供了正確的密碼,因為我可以通過 pgadmin 4 使用這個使用者名/密碼組合連接到主機。

這是一個Google云平台 SQL 實例。

誰知道解決方案?

為了向任何PostgreSQL 實用程序提供憑據,我強烈建議使用Postgres 密碼文件,而不是嘗試在變數中傳遞密碼。

為什麼?您必須從某個地方獲取這些值,這不可避免地導致它們被留在某個文件中。如果是這樣,那為什麼不使用

$$ de facto standard $$一個 PostgreSQL本身已經可以使用的?

在這裡重新發明輪子沒有任何價值。

您正在嘗試以postgres使用者身份連接到集群。您不應訪問哪些內容,哪些內容不應通過網路訪問。

您似乎正在嘗試為集群中的單個數據庫創建邏輯備份;這意味著您應該以該數據庫的所有者身份進行連接。

您可以使用連接到數據庫psql嗎?是一個有用的檢查。

引用自:https://dba.stackexchange.com/questions/299842