В настоящее время я запускаю 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/connecting
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, поэтому я уверен, что это довольно нубская ошибка, которую я упускаю, но любая помощь или вклад очень ценятся!