簡體   English   中英

psql 致命角色不存在

[英]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 所有權限的新用戶

使用 postgres 用戶:

sudo su postgres

然后使用 psql。

如果您仍然遇到問題,請檢查此鏈接: PostgreSQL 錯誤:致命:角色“用戶名”不存在

在 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.

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