I am very new to postgreSQL, but quite familiar with SQL.
I have recently installed postgreSQL on Windows 10. I ran through the startup tutorials and made a few DBs to mess around with. I can login just fine with the postgres account with the command
psql -U postgres -d DatabaseName
However, I have thus far been unable to create a new user to log in with.
I tried the command
CREATE USER myUser WITH SUPERUSER PASSWORD 'password';
When I do this, it creates the user. I can see this with the \du command:
Role name | List of Attributes | Member of
postgres | Superuser, Create Role, Create DB, yada...| {}
myuser | Superuser | {}
I then try \q and logging in with my new user and get the following:
psql -U myUser -d Database
Password for myUser: password
psql: FATAL: password authentication failed for "myUser"
I have also tried createuser from cmd, this user showed up in the list of users as well, but I was again unable to login as these users.
Thank you for any help you can offer.
Best Answer
It's just a case folding problem. You're trying to connect with
myUser
but due to case folding rules, you createdmyuser
in lowercase, as the\du
output shows. Per documentation:To create
myUser
with this exact case, enclose it in double quotes, as in:Then the invocation
psql -U myUser ...
will work.Or alternatively, don't recreate the user but always refer to it in lowercase.