Matt Stevens
Matt Stevens

Reputation: 1114

Phoenix and Postgres install - not talking

My OS is Fedora 26

I have installed Postgresql and Phoenix.

Postgres has a superuser "postgres" with password "postgres". This is confirmed by running \du in psql.

When I run $ mix ecto.create, I get

** (Mix) The database for Hello.Repo couldn't be created: FATAL 28000 (invalid_authorization_specification): Ident authentication failed for user "postgres"

I suspect it may be a permissions issue. To log into psql requires

$ sudo -u postgres psql postgres

Whereas Phoenix when attempting to use postgres may not have sudo privilages.

$ psql --version
psql (PostgreSQL) 9.6.8

Any thoughts appreciated.

Upvotes: 1

Views: 563

Answers (1)

Gregory Arenius
Gregory Arenius

Reputation: 3204

By default the authentication for the postgres database user connecting to the DB locally is to verify that the operating system user is also postgres. This is what the error message refers to as Ident authentication and is why connection after doing sudo -u postgres works.

To connect as the postgres user using another means of authentication you need to edit the pg_hba.conf file. (HBA stands for host based authentication).

The line that allows this will look like this:

local   all             postgres                                peer

Add a line that looks like this (without removing the other line!):

local   all             postgres                                md5

And you should be able to connect using the password for postgres as well.

If I remember correctly you will need to restart the DB for this to take effect.

Upvotes: 1

Related Questions