Сложность подключения к PostgreSQL @ localhost с помощью node-postgress (Ошибка: 28000) - PullRequest
0 голосов
/ 05 января 2019

В настоящее время я запускаю openSuse на rPi3B + (aarch64) и врезался в стену со скриптом подключения NodeJS.

Я прошел стандартную установку PostgreSQL (v10 - это то, что предлагается в этой версии openSuse), затем создал новую роль с

CREATE ROLE new_role LOGIN PASSWORD 'passwd';

, а затем дБ с

CREATE DATABASE new_db OWNER new_role;

Оба значения \l & \du возвращают ожидаемые результаты, показывая, что и роль, и дБ были успешно созданы с правильным владельцем.

Итак, я быстро создал каталог проекта узла и скопировал тестовый скрипт из документации: https://node -postgres.com / features / connection

const { Pool, Client } = require('pg')
const connectionString = 'postgresql://new_role:passwd@localhost:5432/new_db'

const pool = new Pool({
  connectionString: connectionString,
})

pool.query('SELECT NOW()', (err, res) => {
  console.log(err, res)
  pool.end()
})

const client = new Client({
  connectionString: connectionString,
})
client.connect()

client.query('SELECT NOW()', (err, res) => {
  console.log(err, res)
  client.end()
})

Это возвращает несколько ошибок нарушенного обещания, которые я еще не уловил (.cath()) правильно, и код ошибки 28000, который выглядит следующим образом:

{ error: Ident authentication failed for user "new_role"
at Connection.parseE (/home/eru/postgresDB/node_modules/pg/lib/connection.js:554:11)
at Connection.parseMessage (/home/eru/postgresDB/node_modules/pg/lib/connection.js:379:19)
at Socket.<anonymous> (/home/eru/postgresDB/node_modules/pg/lib/connection.js:119:22)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:283:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
  name: 'error',
  length: 99,
  severity: 'FATAL',
  code: '28000',
  detail: undefined,
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'auth.c',
  line: '328',
  routine: 'auth_failed' } undefined

Так что я почти уверен, что попытка добралась до предполагаемого порта, иначе я бы не получил подробную ошибку в терминале. Код ошибки = invalid_authorization_specification

Есть ли что-то, что мне нужно сделать на сервере, psql интерфейс, который будет соответствовать спецификации авторизации?

Когда я смотрю на этот конкретный вопрос, я не могу найти полезных результатов поиска, соответствующих моей ситуации.

Совершенно новичок в postgres здесь, так что я уверен, что это довольно грубая ошибка, которую я пропускаю, но любая помощь или вклад очень важны!

1 Ответ

0 голосов
/ 05 января 2019

Найден ответ после еще нескольких копаний здесь: ошибка: идентификация аутентификации пользователя не удалась

Закончилось редактирование моего pg_hba.conf из метода ident в md5

Это довольно грубо, потому что я не совсем понимаю, что я изменил, кроме того, что я приказал postgreSQL проверить зашифрованный пароль md5 вместо проверки, соответствует ли мое имя пользователя ролям, созданным на сервере.

Если у кого-то есть правильное объяснение того, что изменилось и почему у меня все уши.

...