i'm looking for setup a Rails Environment with Vagrant, for that purpose the box it's been provisioned through bash shell method and includes among others this line:
sudo -u postgres createuser <superuserusername> -s with password '<superuserpassword>'
but i'm getting a configuration error, createuser: too many command-line arguments (first is "with")
can you help me with the correct syntax for create a Superuser with a password. Thanks
24 Answers
Do it in a single statement within psql:
CREATE ROLE username WITH LOGIN SUPERUSER PASSWORD 'password';
e.g
5CREATE ROLE dummy WITH LOGIN SUPERUSER PASSWORD '123456';
Solved with:
sudo -u postgres createuser -s -i -d -r -l -w <<username>> sudo -u postgres psql -c "ALTER ROLE <<username>> WITH PASSWORD '<<password>>';" I know is not an elegant solution, but for now it'll do 😊
For PostgreSQL versions 8.1 and newer
To create a superuser:
CREATE USER username SUPERUSER; If you need to specify the password:
CREATE USER username WITH SUPERUSER PASSWORD 'passwordstring'; 3To create a PostgreSQL user, follow these steps: At the command line, type the following command as the server's root user:
su - postgres You can now run commands as the PostgreSQL superuser.To create a user, type the following command:
createuser --interactive --pwprompt At the Enter name of role to add: prompt, type the user's name. At the Enter password for new role: prompt, type a password for the user. At the Enter it again: prompt, retype the password. At the Shall the new role be a superuser? prompt, type y if you want to grant superuser access. Otherwise, type n. At the Shall the new role be allowed to create databases? prompt, type y if you want to allow the user to create new databases. Otherwise, type n. At the Shall the new role be allowed to create more new roles? prompt, type y if you want to allow the user to create new users. Otherwise, type n. PostgreSQL creates the user with the settings you specified.
1