簡體   English   中英

嘗試恢復 .dump 文件 postgres 時權限被拒絕

[英]Permission Denied when trying to restore .dump file postgres

我正在嘗試以下命令從 .dump 文件加載架構和數據:

psql proj1 -f /Users/utkarshatri/Desktop/proj1/mymyunsw.dump

但它說許可被拒絕。

在此處輸入圖片說明

包含 .dump 文件的文件夾對 postgres 具有讀寫權限

total 101728
drwxr-xr-x@ 4  utkarshatri staff 136      24 Mar 05:41 ./
drwx------@ 23 utkarshatri staff 782      24 Mar 06:18 ../
-rwxrw-rw-@ 1  utkarshatri staff 52080321  8 Mar 00:30 mymyunsw.dump*
-rwxr--r--@ 1  utkarshatri staff 2130      8 Mar 00:30 proj1.sql*

終端上的簡單 cat 可以工作,但在 postgres 命令行上返回權限被拒絕在此處輸入圖片說明

我該如何解決?

任何幫助,將不勝感激。

問題似乎不在於當前目錄,而在於上一級的目錄:

drwx------@ 23 utkarshatri staff 782      24 Mar 06:18 ../

這表明只有您的用戶具有進入項目目錄所需的權限。 嘗試運行這個

chmod a+rx ../

這將更改權限,以便系統上的任何人都可以打開並查看目錄,但仍然只有您可以寫入.

我嘗試了許多不同的解決方案來還原postgres備份。 我遇到了MacOS上被拒絕的問題,似乎沒有解決方案。

這是我如何使其工作的方法:

Postgres帶有Pgadmin4。 如果使用macOS,則可以按CMD + SPACE並鍵入pgadmin4來運行它。 這將在Chrome中打開一個瀏覽器標簽。

如果在使pgadmin4正常工作時遇到錯誤, killall pgAdmin4在終端中嘗試killall pgAdmin4 ,然后重試。


獲取pgadmin4 +備份/還原的步驟

1.創建備份

通過右鍵單擊數據庫->“備份”來執行此操作

在此處輸入圖片說明

2.給文件起一個名字。

就像test12345一樣。 單擊備份。 這將創建一個二進制文件轉儲,而不是.sql格式

在此處輸入圖片說明

3.查看下載位置

屏幕的右下角應該有一個彈出窗口。 點擊“更多詳細信息”頁面,查看備份下載到的位置

在此處輸入圖片說明

4.查找下載文件的位置

在這種情況下,它是/users/vincenttang

在此處輸入圖片說明

5.從pgadmin恢復備份

假設您正確執行了步驟1到步驟4,您將擁有一個還原二進制文件。 有時您的同事希望在其本地計算機上使用您的還原文件。 說過該人去pgadmin並恢復

通過右鍵單擊數據庫->“還原”來執行此操作

在此處輸入圖片說明

6.選擇文件查找器

確保手動選擇文件位置,請勿將文件拖放到pgadmin的上載器字段中。 因為您會遇到錯誤權限。 相反,找到您剛創建的文件:

在此處輸入圖片說明

7.找到所說的文件

您可能必須將右下角的過濾器更改為“所有文件”。 此后,從第4步中查找文件。現在點擊右下角的“選擇”按鈕以確認

在此處輸入圖片說明

8.恢復所說的文件

您將再次看到此頁面,其中包含選定文件的位置。 繼續還原它

在此處輸入圖片說明

9.成功

如果一切正常,則右下角應彈出一個指示恢復成功的指示器。 您可以導航到表以查看每個表上的數據是否已正確還原。

10.如果不成功:

如果第9步失敗,請嘗試刪除數據庫上的舊公共模式。 轉到“查詢工具”

在此處輸入圖片說明

執行以下代碼塊:

DROP SCHEMA public CASCADE; CREATE SCHEMA public;

在此處輸入圖片說明

現在再次嘗試步驟5到9,應該可以解決

摘要

當我遇到錯誤權限問題並且無法以超級用戶身份登錄時,這就是我必須在Postgres上備份/還原備份的方式。 或使用chmod為文件夾設置讀/寫憑據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM