当我尝试迁移数据库时,我收到此错误:
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
答案 0 :(得分:2)
/var/run/postgresql
目录只是Debian附带的postgres客户端库(libpq)的默认套接字位置以及基于它的发行版。
当将系统包附带的混合客户端库与自编译的服务器或备用源混合时,会发生套接字位置不匹配。
您可以通过host
中的database.yml
参数将客户端程序指向备用位置(或更常见的是连接参数,无论它们存储在何处):
host: /tmp
注意:
这不能是完整的套接字文件名,只能是目录。构建文件名是postgres库(libpq)的工作,而不是调用者的工作。
postgres客户端库了解这是服务器套接字的路径,而不是主机名,因为它以斜杠开头。指示套接字不需要任何其他内容。与mysql不同,连接选项中没有套接字参数。
答案 1 :(得分:0)
尝试将此行添加到database.yml
socket: /tmp/.s.PGSQL.5432