Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 241
Siddhant Loya Avatar asked May 24 '15 13:05

Siddhant Loya


2 Answers

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.

like image 107
Sam Eaton Avatar answered Sep 24 '22 21:09

Sam Eaton


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

like image 38
Sid Shukla Avatar answered Sep 22 '22 21:09

Sid Shukla