Siddhant Loya
Siddhant Loya

Reputation: 131

psql: FATAL: role "vagrant" does not exist

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/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

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

Upvotes: 12

Views: 11517

Answers (4)

Devyash Sanghai
Devyash Sanghai

Reputation: 33

  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)

Upvotes: 0

Sam Eaton
Sam Eaton

Reputation: 1835

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.

Upvotes: 23

Sid Shukla
Sid Shukla

Reputation: 1030

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

Upvotes: 8

Federico Cristina
Federico Cristina

Reputation: 2223

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

Upvotes: 0

Related Questions