简体   繁体   中英

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

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.

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

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)

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM