tutorial pricing postgres example delete postgresql node.js authentication node-postgres

pricing - Error de autenticación al conectarse a la base de datos PostgreSQL de Heroku



heroku postgresql database url (5)

Agregué estos parámetros y ahora puedo conectarme a mi instancia de heroku postgres desde un servidor externo, específicamente, en la configuración de knex.js en un servidor de nodo express:

var knex = require(''knex'')({ client: ''postgres'', connection: ''postgres://username:password@host:5432/yourdbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory'' });

Estoy desarrollando una aplicación Node.js usando PostgreSQL y hosting en Heroku. Mi problema es que recibo un error de autenticación como ese:

14:32:05 web.1 | { [error: no pg_hba.conf entry for host "193.40.244.196", user "username", database "database_name", SSL off] 14:32:05 web.1 | length: 168, 14:32:05 web.1 | name: ''error'', 14:32:05 web.1 | severity: ''FATAL'', 14:32:05 web.1 | code: ''28000'', 14:32:05 web.1 | detail: undefined, 14:32:05 web.1 | hint: undefined, 14:32:05 web.1 | position: undefined, 14:32:05 web.1 | internalPosition: undefined, 14:32:05 web.1 | internalQuery: undefined, 14:32:05 web.1 | where: undefined, 14:32:05 web.1 | file: ''auth.c'', 14:32:05 web.1 | line: ''483'', 14:32:05 web.1 | routine: ''ClientAuthentication'' }

Puede ser un problema SSL, pero no debería ser como se menciona here . SSL debe ser compatible desde el primer momento. Así que estoy perplejo y solo puedo preguntar qué podría causar este error.

No estoy seguro de si tengo que editar el pg_hba.conf en mi sistema, pero ni siquiera puedo encontrarlo.



Me metí en esto yo mismo, es una solución simple. Simplemente conéctese a través de HTTPS


Se metió en el mismo problema. Just Enabled ssl = true en los parámetros db.

var pg = require(''pg''); var params = { host: ''heroku_hostname'',user: ''username'',password: ''password'',database: ''database'',ssl: true }; var client = new pg.Client(params); client.connect();


node-postgres no es compatible con SSL en sus enlaces javascript, que está utilizando si lo hace:

var pg = require(''pg'');

Para obtener SSL, debe usar el enlace nativo al hacer esto:

var pg = require(''pg'').native;

No necesita usar SSL cuando su aplicación se ejecuta dentro de Heroku, solo necesita usar SSL para conectarse remotamente (cuando su aplicación se ejecuta localmente).