Postgres错误:角色<用户名>不存在,角色<用户名>已存在

时间:2017-04-07 01:52:13

标签: postgresql

我在尝试连接到postgres数据库时遇到了严重问题。我跑了&#39; psql&#39;然后我得到这个错误&#34; psql:致命:角色&#34;&#34;不存在&#34;。然后我使用psql -U postgres登录postgres,尝试使用我的用户名创建一个角色,然后我收到此错误&#34;角色已经存在&#34;。我搜遍了所有的解决方案。有谁知道发生了什么?我在Windows 10上。

1 个答案:

答案 0 :(得分:0)

您可能安装了两个版本的postgres。至少在Ubuntu上,这就是我遇到的问题。我不得不(警告这可能会删除datbase,我不知道: sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install postgresql-9.4 ),它将选择所有Postgres版本并将其卸载。

在Windows上,使用图形界面卸载后,您将确认没有其他Postgres服务器正在运行。

然后重新安装正确版本的Postgres(对我来说,对于Odoo 11,它是9.4)

sudo

然后,我做了:({POS su / sudo su - postgres -c "createuser -s $USER" sudo -u postgres psql -c "ALTER USER $USER WITH SUPERUSER;" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO $USER;" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO $USER;" sudo -u postgres psql -c "CREATE DATABASE $USER;" psql 仅用于POSIX系统)

sudo su - postgres -c "createuser -s backup"
sudo -u postgres psql -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup;"
sudo -u postgres psql -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO backup;"

如果您想要备份用户

{{1}}

或者,您可以尝试使用pgadmin3,但我发现该界面很困难