当前位置: 代码迷 >> 综合 >> psql FATAL role vagrant does not exist
  详细解决方案

psql FATAL role vagrant does not exist

热度:73   发布时间:2024-01-11 02:02:55.0

psql: FATAL: role “vagrant” does not exist

up vote 0 down vote favorite

I have been trying to set up vagrant but I am getting this error. I will list out my installation method. Please suggest changes where you feel they are needed.

-Installed virtual box
sudo apt-get install virtual box

-Downloaded .deb package from vagrant website

-Installed it using
sudo dpkg -i (package_name)

-then I selected the vagrant folder in the fullstack folder and
vagrant up
vagrant ssh

then I did :
vagrant@vagrant-ubuntu-trusty-32: cd /vagrant/forumvagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ sudo apt-get install postgresql-client-commonvagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ sudo apt-get install postgres-xc-client

Then finally:
vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ psqlpsql: FATAL: role "vagrant" does not exist

share improve this question
 
 
Sure, you haven't set up a Postgres role that corresponds to your current user (which is vagrant). postgresql.org/docs/9.3/static/user-manag.html –  Oliver Charlesworth  May 24 '15 at 13:09 

4 Answers

active oldest votes
up vote 2 down vote

1)First exit the vagrant prompt 

exit

2) Halt the vagrant instance

vagrant halt

3)Destroy the vagrant instance 

vagrant destroy

4)Create a new instance 

vagrant up

This might solve it. It atleast did for me.(Tried it)

share improve this answer
 
up vote 1 down vote

This is happening because there is no role specified in postgres. When there is no role specified, it tries to use the username of the account as the default role and hence your error. So, now, you could either create a role in postgres for the vagrant user or just use the postgres user itself. So, first, login with the postgres user:

psql -U postgres

then, create a role for the user vagrant

CREATE ROLE vagrant LOGIN;

In case, if you want it with a password, use:

CREATE USER vagrant WITH PASSWORD 'password';

or

CREATE ROLE vagrant WITH LOGIN PASSWORD 'password';

CREATE USER is the same as CREATE ROLE with the exception that USER implies LOGIN.

Source

share improve this answer
 
 
vagrant@vagrant-ubuntu-trusty-32:/$ psql -U postgres psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? vagrant@vagrant-ubuntu-trusty-32:/$  –  Siddhant Loya  May 24 '15 at 13:32 
 
try 'sudo service postgres restart' –  Siddharth Shukla  May 24 '15 at 13:41
 
postgres: unrecognized service –  Siddhant Loya  May 24 '15 at 13:48
 
sudo apt-get update; sudo apt-get install postgresql postgresql-contrib; and then repeat the steps in the answer. Looks like a postgres installation issue. –  Siddharth Shukla  May 24 '15 at 13:59 
 
After I run psql -U postgres it gives this error:  psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? –  Siddhant Loya  May 25 '15 at 4:51 
up vote 1 down vote

You need to change to the postgres user and give vagrant superuser access.

sudo su - postgres
createuser vagrant -s
exit  # exit from postgres user back into vagrant

You can do everything with with vagrant now.

share improve this answer
 
up vote 0 down vote

You are trying to connect to postgresql using vagrant user. In this case, postgresql y looking for the corresponding vagrant role (if not specified, the default role for a user is it's username). However, looks like there is no such role created.

You can create the role, or try for example a login using the postgres user:

vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ psql -U postgres

You can also specify the databasename you want to connect to:

vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$ psql -U postgres -d DATABASENAME
share improve this answer
 
 
-bash: vagrant@vagrant-ubuntu-trusty-32:/vagrant/forum$: No such file or directory –  Siddhant Loya  May 24 '15 at 13:26
 
That's the path specified in the question. Simply try to type psql the command: psql -U postgres -d DATABASENAME –  Federico Cristina  May 24 '15 at 13:29
  相关解决方案