我已经更改了PostgreSQL服务器的端口,因此它创建的套接字不再被命名为“.s.PGSQL.5432”。
有没有办法更新/强制Rails / pg gem更改它查找的套接字名称?我尝试按照建议卸载/重新安装pg gem,但它仍然试图寻找一个名为.s.PGSQL.5432的套接字,而不是它应该的.s.PGSQL.50000,并根据database.yml注释, 'socket'配置行不适用于PostgreSQL。
答案 0 :(得分:1)
更改database.yml中的端口
PostgreSQL支持两种连接:tcp / ip和unix域套接字。两者都可以使用主机和端口,但以不同的方式使用它们。
使用TCP / IP时,主机和端口具有与运行TCP / IP的网络相关的标准含义。
使用Unix域套接字时,host提供目录,port提供套接字名称的数字部分。路径应该是绝对的。对于任何基于libpq的连接(包括通过pg gem)都应该如此,所以请考虑这个:
psql -h /tmp -p 5000
这会给出错误消息:
$ psql -h /tmp -p 5000
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5000"?
类似地:
$ psql -h /foo -p 50000
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/foo/.s.PGSQL.50000"?