[英]How to restore PostgreSQL dump file into Postgres databases?
[英]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
,然后重試。
通過右鍵單擊數據庫->“備份”來執行此操作
就像test12345
一樣。 單擊備份。 這將創建一個二進制文件轉儲,而不是.sql
格式
屏幕的右下角應該有一個彈出窗口。 點擊“更多詳細信息”頁面,查看備份下載到的位置
在這種情況下,它是/users/vincenttang
假設您正確執行了步驟1到步驟4,您將擁有一個還原二進制文件。 有時您的同事希望在其本地計算機上使用您的還原文件。 說過該人去pgadmin並恢復
通過右鍵單擊數據庫->“還原”來執行此操作
確保手動選擇文件位置,請勿將文件拖放到pgadmin的上載器字段中。 因為您會遇到錯誤權限。 相反,找到您剛創建的文件:
您可能必須將右下角的過濾器更改為“所有文件”。 此后,從第4步中查找文件。現在點擊右下角的“選擇”按鈕以確認
您將再次看到此頁面,其中包含選定文件的位置。 繼續還原它
如果一切正常,則右下角應彈出一個指示恢復成功的指示器。 您可以導航到表以查看每個表上的數據是否已正確還原。
如果第9步失敗,請嘗試刪除數據庫上的舊公共模式。 轉到“查詢工具”
執行以下代碼塊:
DROP SCHEMA public CASCADE; CREATE SCHEMA public;
現在再次嘗試步驟5到9,應該可以解決
當我遇到錯誤權限問題並且無法以超級用戶身份登錄時,這就是我必須在Postgres上備份/還原備份的方式。 或使用chmod
為文件夾設置讀/寫憑據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.