1

当我尝试迁移数据库时,出现此错误:

rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我尝试创建一个指向 .s.PGSQL.5432 的符号链接,但它不起作用。我的这个文件在 /tmp/.s.PGSQL.5432

有没有人有解决方案?

操作系统 - Linux Mint

4

2 回答 2

2

/var/run/postgresql目录只是Debian 和基于它的发行版附带的 postgres 客户端库 (libpq)的默认套接字位置。

将系统包附带的混合客户端库与自编译或来自替代源的服务器混合时,会发生套接字位置的不匹配。

您可以通过参数将客户端程序指向备用位置host,在database.yml(或更一般地在连接参数中存储它们的位置):

host: /tmp

笔记:

  • 这不能是完整的套接字文件名,只能是目录。构建文件名是 postgres 库 (libpq) 的工作,而不是调用者的工作。

  • postgres 客户端库知道这是服务器套接字的路径,而不是主机名,因为它以斜杠开头。不需要其他任何东西来指示套接字。与 mysql 不同,连接选项中没有套接字参数。

于 2013-10-30T12:27:42.817 回答
0

尝试将此行添加到您的database.yml

socket: /tmp/.s.PGSQL.5432
于 2013-10-30T03:16:21.450 回答