Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PostgreSQL - FATAL: Ident authentication failed for user

I've created a simple table in postgres called employees in database mytestdb

I would like to import this table into hdfs.

bin/sqoop import --connect 'jdbc:postgresql://127.0.0.1/mytestdb' --username user -P --table employees --target-dir /user/postgres

But, I keep receiving an error:

WARNING: SQLException occurred while connecting to 127.0.0.1:5432 org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "user" at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:473)

/var/lib/pgsql/data/pg_hba.conf set up as follows:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident
like image 291
usr Avatar asked Apr 29 '18 09:04

usr


People also ask

What is ident authentication in PostgreSQL?

The ident authentication method works by obtaining the client's operating system user name from an ident server and using it as the allowed database user name (with an optional user name mapping). This is only supported on TCP/IP connections.

What is the default Postgres password?

Login and Connect as Default User For most systems, the default Postgres user is postgres and a password is not required for authentication.


1 Answers

I found a workable solution from a combination of several different sources on the web.

Edit the configuration file

nano /var/lib/pgsql/data/pg_hba.configuration

Replace the first two ident's with md5, like so:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

Save file.

Then, restart the server

sudo systemctl restart postgresql

Lastly, grant all privileges on database testdb to hduser;

like image 89
usr Avatar answered Oct 17 '22 02:10

usr