psql:致命:角色"vagrant"不存在

Sid*_*oya 3 postgresql ubuntu

我一直试图设置流浪汉,但我收到了这个错误.我将列出我的安装方法.请在您认为需要的地方建议更改.

- 安装虚拟盒子
sudo apt-get install virtual box

-ranown网站上的.downloaded .deb包

- 使用安装它
sudo dpkg -i (package_name)

然后我选择了fullstack文件夹中的vagrant文​​件夹
vagrant up
vagrant ssh

然后我做了:
vagrant@vagrant-ubuntu-trusty-32: cd /vagrant/forum vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ sudo apt-get install postgresql-client-common vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ sudo apt-get install postgres-xc-client

最后:
vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ psql psql: FATAL: role "vagrant" does not exist

Sam*_*ton 10

您需要更改为postgres用户并授予vagrant超级用户访问权限.

sudo su - postgres
createuser vagrant -s
exit  # exit from postgres user back into vagrant
Run Code Online (Sandbox Code Playgroud)

你现在可以和流浪者一起做.

  • 如果为安装主机配置 bash 文件脚本,在脚本中使用以下内容时似乎效果更好:`sudo -u postgres createuser vagrant -s && sudo -u postgres createdb vagrant` (3认同)

Sid*_*kla 6

发生这种情况是因为 postgres 中没有指定角色。当没有指定角色时,它会尝试使用帐户的用户名作为默认角色,因此您会出错。所以,现在,您可以在 postgres 中为 vagrant 用户创建一个角色,也可以只使用 postgres 用户本身。因此,首先,使用 postgres 用户登录:

psql -U postgres
Run Code Online (Sandbox Code Playgroud)

然后,为用户 vagrant 创建一个角色

CREATE ROLE vagrant LOGIN;
Run Code Online (Sandbox Code Playgroud)

如果您想要密码,请使用:

CREATE USER vagrant WITH PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)

或者

CREATE ROLE vagrant WITH LOGIN PASSWORD 'password';
Run Code Online (Sandbox Code Playgroud)

CREATE USER 与 CREATE ROLE 相同,但 USER 暗示登录。

来源