PostgreSQL - FATAL: аутентификация пользователя не удалась - PullRequest
0 голосов
/ 29 апреля 2018

Я создал простую таблицу в postgres под названием employees в базе данных mytestdb

Я бы хотел импортировать эту таблицу в hdfs.

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

Но я получаю сообщение об ошибке:

ВНИМАНИЕ: при подключении к 127.0.0.1:5432 произошло исключение SQLException org.postgresql.util.PSQLException: FATAL: ошибка идентификации пользователя для пользователя "пользователь" в org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication (ConnectionFactoryImpl.java:473)

/var/lib/pgsql/data/pg_hba.conf настроен следующим образом:

# 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

Ответы [ 2 ]

0 голосов
/ 16 июля 2018

Я нашел работоспособное решение из комбинации нескольких разных источников в сети.

Редактировать файл конфигурации

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

Заменить первые два ident на md5, например:

# 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

Сохранить файл.

Затем перезагрузите сервер

sudo systemctl restart postgresql

Наконец, grant all privileges on database testdb to hduser;

0 голосов
/ 29 апреля 2018

Проверьте файл журнала в (для CentOS, возможно, в /var/lib/pgsql/data/pg_log) для получения более подробной информации.

Если пользователь не существует, создайте его. С psql вы можете создать пользователя , например:

create role hduser with login, superuser;

Или из командной строки :

createuser -s -e hduser

Если identd не установлен, установите его:

yum install authd xinetd

Затем отредактируйте /etc/xinet.d/auth и измените disable = yes на disable = no:

service auth 
{ 
        disable = no 
        socket_type = stream 
        ....
}

И перезапустите службу xinetd:

systemctl restart xinetd
...