5

I have Postgres installed in my local machine.

When I execute

psql -U postgres -d buzzsumo

it correctly asks for my password to the user postgres.

However, when I run

psql -U postgres -d buzzsumo -h localhost

it gives me this error message:

psql: FATAL: role "postgres" does not exist

Why is this the case, when in the first example I am connecting to my local server, which is equivalent to passing in localhost?

1
  • Have you find anything ? Commented Sep 7, 2021 at 18:58

2 Answers 2

3

You don't say but I'm guessing you're running postgres on either on MacOS or Linux.

The first form (with no -h) connects via a "unix socket". The second form, with "-h localhost" connects via TCP/IP to localhost (IP address 127.0.0.1).

Postgres treats these two types of connections differently - or at least, it can do so. If you check the "pgsql/data/pg_hba.conf" file to see what authentication mechanisms are configured for the two types of connections.

Sign up to request clarification or add additional context in comments.

1 Comment

But why is role not found is coming? role is there right ?
2

Your first example connects via Unix socket, the second one via TCP/IP local loop (localhost).

For the first example, you need the connection type local in pg_hba.conf, for the second lines starting with host are relevant. You probably have defined different authentication methods for these classes of connections.

1 Comment

But why is role not found is coming? role is there right ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.