【问题标题】:How to connect to Postgres database through Ruby's pg gem (outside of Rails)如何通过 Ruby 的 pg gem 连接到 Postgres 数据库(Rails 之外)
【发布时间】:2014-07-09 07:27:46
【问题描述】:

我一直在 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 并且我认为它没有到达身份验证点)。

【问题讨论】:

    标签: ruby postgresql pg


    【解决方案1】:

    您需要指定主机。它正在尝试连接 unix 域套接字。 PG 应用不会监听 unix 套接字(除非您将其配置为),而是在 localhost:5432 上运行。

     conn = PG.connect( host: 'localhost' )
    

    【讨论】:

    • 谢谢。那照顾了它。今晚晚些时候我会接受(现在必须运行)。
    【解决方案2】:

    实际问题很可能是您的“pg”gem 已链接到旧版本的 libpq 动态库。有关更多详细信息和可能的解决方案,请参阅this post。

    【讨论】:

      猜你喜欢
      • 2013-09-12
      • 2017-10-06
      • 2017-01-11
      • 2018-07-12
      • 2021-08-16
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多