[英]psql fatal role does not exist
我最近安裝了最新版本的 Ubuntu,但我還不習慣。 我在連接 PostgreSQL 和 pgadmin3 時遇到了幾個問題。
我嘗試按照幾個教程創建一個可以在 pgadmin3 中使用的本地主機服務器。 我並沒有真正達到目標,我認為我通過安裝,卸載,安裝,卸載,嘗試找到的答案使情況變得更糟......此時我不確定我的PostgreSQL是否干凈。 有可能我安裝了兩個 PostgreSQL,再次,我不確定。 我試圖卸載它,但我有一個錯誤,基本上說 PostgreSQL 不在 sudo 中。
問題是我現在在控制台中運行 psql 時出現此錯誤:
$psql
psql: FATAL: role "user" does not exist
我找不到pg_hba.conf
並且在這一點上我太害怕嘗試關注任何其他帖子而使事情變得更糟。
我怎么能讓這個工作?
正如評論中指出的那樣,您的 pg_hba.conf 看起來不錯。
通常,數據庫將以 postgres 用戶身份運行(檢查ps aux | grep postgres
以找出運行 postgres 的用戶名)。
以該用戶身份登錄,例如sudo su - postgres
,然后創建一個與您的普通 Ubuntu 用戶帳戶匹配的用戶( createuser username
),最后創建一個具有相同名稱的數據庫並將所有者( -O
)設置為該數據庫用戶,像這樣: createdb -O username username
)。
這應該使調用psql
起作用,並且 pgadmin - 只要您以默認用戶、用戶名啟動它 - 也應該起作用。
編輯:默認情況下, psql
將使用您的 Linux 用戶名作為 database-username 和 database-name 的默認值。 您可以使用-U someotherusername
覆蓋用戶名,並通過將該數據庫名稱添加到命令行來連接到不同的數據庫,例如psql someotherdbname
。 您可能還會發現psql -l
對列出現有數據庫很有用。
sudo -u postgres createuser user
可以幫助您創建一個具有 postgres 所有權限的新用戶
在 Windows 10 中,這很好用
pg_restore --format=c --verbose --no-owner --no-privileges --dbname=MYDB --username=postgres --no-password --jobs=8 F:/MYBK.backup
--username=(role) 和 --no-password 是必需的
如果您在 Windows 上遇到這個問題,這有點老問題,只需刪除 Postgres data
目錄並通過運行initdb /data
重新初始化 Postgres initdb /data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.