【发布时间】:2014-09-19 22:22:21
【问题描述】:
我正在关注这篇文章 ((http://nodeexamples.com/2012/09/21/connecting-to-a-postgresql-database-from-node-js-using-the-pg-module/)。我已经将我的应用程序部署到 heroku,目前正在使用 express node.js 尝试连接到我刚刚安装的 Heroku 中的 PostgresSQL 数据库。我得到在文章的最后,我使用命令
node myfile.js
我收到此错误
error: no pg_hba.conf entry for host "...", user "...", database "...", ...
如何创建一个,我应该把它放在我的应用目录的什么位置?
以下是完整的错误消息。我更改了 IP 地址、用户和数据库的字符串,但它看起来基本一样。
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)
编辑:我做了更多研究,发现'pg_hba.conf'文件在我的
/usr/local/var/postgres
我将此行添加到“pg_hba.conf”文件中
# TYPE DATABASE USER ADDRESS METHOD
host all all trust
也试过
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
但它一直说我的主机、用户、数据库等没有条目... 我的 'pg_hba.conf' 语法有什么错误吗?
【问题讨论】:
-
您需要编辑 /etc/postgresql/X.Y/main/pg_hba.conf。您需要添加如下所示的一行:“host mydatabase myuser 0.0.0.0/0 md5”。 @Rhim 为您提供了包含该文件完整文档的链接,因此您应该首先参考。
-
@aembke 谢谢你的回答。 /etc/ 目录在哪里?
-
它在根目录中,假设你在 linux 上运行。
-
哦,你是说你把它部署到heroku,你看到了这个错误?或者你试图在你自己的盒子上运行它?如果您在 heroku 上执行此操作,您可能需要首先配置您的数据库。首先,您应该阅读本指南:devcenter.heroku.com/articles/…。然后,您需要修改代码以使用 heroku 的环境变量进行连接:devcenter.heroku.com/articles/…。如果您遵循他们的指南,他们应该为您处理 pg_hba.conf 修改。
标签: node.js postgresql express heroku