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.
Lo PGSSLMODE
estableciendo PGSSLMODE
( http://www.postgresql.org/docs/9.0/static/libpq-envars.html ) en Heroku. Le dice a PostgreSQL que de manera predeterminada a SSL.
$ heroku config:set PGSSLMODE=require
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).