Postgresql
無法使用 pg_dump 備份 postgres 13
我正在嘗試在 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
嗎?是一個有用的檢查。