我一直在Rails中使用Postgres而没有问题,并且一直在运行psql
而没有问题。但是,我在尝试使用pg
gem连接到数据库时遇到了问题。
以下代码:
PG.connect
生成错误/输出:
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
无论我是否指定了各种dbname:
值,结果都是一样的,或者只是将其设为默认值。
当我点击屏幕顶部的小象图标时,它会显示“在端口5432上运行”,正如我所说,我可以毫无问题地与psql
连接。
我找到了非常相似的cannot connect to Postgres (pg) database from my Ruby Script using gem "pg"(This is not rails, just pure ruby),但答案只是说Rails工作正常。
任何指导都将不胜感激。 (注意:我意识到我没有输入任何名称/密码信息,但我没有输入比运行psql
并且我收集它时没有达到认证点。)
答案 0 :(得分:5)
您需要指定主机。它正在尝试连接unix域套接字。 PG应用程序不监听unix套接字(除非你将其配置为),而是在localhost:5432上运行。
conn = PG.connect( host: 'localhost' )
答案 1 :(得分:0)
实际问题很可能就是你的“pg' gem已链接到libpq
动态库的旧版本。有关详细信息和可能的解决方案,请参阅this post。