I am following this article ((http://nodeexamples.com/2012/09/21/connecting-to-a-postgresql-database-from-node-js-using-the-pg-module/). I have already deployed my app to heroku and currently using express, node.js, to try and connect to a PostgresSQL database in Heroku that I just installed. I get to the very end of the article and I use the command
node myfile.js
I get this error
error: no pg_hba.conf entry for host "...", user "...", database "...", ...
How do I go about creating one and where in my app directory should I put it?
Below is the entire error message. I changed the strings for IP address, user, and database but it looks basically just like it.
events.js:72 throw er; // Unhandled 'error' event ^ error: no pg_hba.conf entry for host "00.000.000.00", user "username", database "databasename", SSL off at Connection.parseE (/Users/user/workspace/MyApp/app/node_modules/pg/lib/connection.js:526:11) at Connection.parseMessage (/Users/user/workspace/MyApp/app/node_modules/pg/lib/connection.js:356:17) at Socket.<anonymous> (/Users/user/workspace/MyApp/app/node_modules/pg/lib/connection.js:105:22) at Socket.emit (events.js:95:17) at Socket.<anonymous> (_stream_readable.js:748:14) at Socket.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:410:10) at emitReadable (_stream_readable.js:406:5) at readableAddChunk (_stream_readable.js:168:9) at Socket.Readable.push (_stream_readable.js:130:10)
Edit: I did some more research and found that the 'pg_hba.conf' file is in my
/usr/local/var/postgres
and I added this line into the 'pg_hba.conf' file
# TYPE DATABASE USER ADDRESS METHOD host all all trust
also tried
# TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 md5
but it keeps saying there is no entry for my host, user, database, etc... is my 'pg_hba.conf' syntax wrong in any way?
Change your connection code to use ssl. Following your linked example:
var conString = "pg://admin:guest@localhost:5432/Employees"; var client = new pg.Client(conString); client.connect();
becomes:
var client = new pg.Client({ user: "admin", password: "guest", database: "Employees", port: 5432, host: "localhost", ssl: true }); client.connect();
https://github.com/brianc/node-postgres/wiki/Client#new-clientobject-config--client
Running on heroku:
We ran into this error while upgrading the pg database on heroku from hobby
tier to standard-0
. SSL is required, but we didnt set it in our config.
Include in config when initialize new Sequelize(...)
"dialect": "postgres", "dialectOptions": { "ssl": true }
This trick was, that the ssl option is wrapped in dialectOptions
. found here: https://github.com/sequelize/sequelize/issues/956#issuecomment-147745033
Info by @Atish: Use
options: { dialect: "postgres", native: true, # adding this maybe breaks on hobby dyno ssl: true, dialectOptions: { ssl: true } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With