我有一个简单的网页在Ruby On Rails与postgresql数据库,但当我运行服务器我有这个错误,我不知道我做的。我使用postgresql,因为heroku需要的应用程序是在postgresql。我在ubuntu工作13.10错误为:
PG::ConnectionBad无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
我需要帮助谢谢
beq87vna1#
只需创建一个这样的软链接,这对我很有效
$ sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
用于more info
zi8p0yeb2#
此外,您还可以强制停止服务器,然后强制启动服务器sudo service postgresql stop --forcesudo service postgresql start --force个
sudo service postgresql stop --force
sudo service postgresql start --force
krugob8w3#
我有这个错误,由于没有正确配置连接到数据库,正是因为语法错误,在设置环境变量,即.错误的MY_APP_DB= $MY_APP_DB_NAME,而不是MY_APP_DB=$MY_APP_DB_NAME
MY_APP_DB= $MY_APP_DB_NAME
MY_APP_DB=$MY_APP_DB_NAME
hc2pp10m4#
sudo systemctl start postgresql
bfrts1fy5#
首先,您需要确保socket file位于/var/run/postgresql/.s.PGSQL.5432中。
socket file
/var/run/postgresql/.s.PGSQL.5432
$ cat /var/run/postgresql/.s.PGSQL.5432
如果结果显示了什么,那么问题是其他的。但是,如果文件不在那里,你需要检查/tmp目录(特别是OSX Homebrew用户)
/tmp
Homebrew
$ cd /tmp $ l total 16 drwxrwxrwt 7 root wheel 224B Mar 11 08:03 . drwxr-xr-x 6 root wheel 192B Jan 23 18:35 .. -rw-r--r-- 1 root wheel 65B Nov 7 22:59 .BBE72B41371180178E084EEAF106AED4F350939DB95D3516864A1CC62E7AE82F srwxrwxrwx 1 shiva wheel 0B Mar 11 08:03 .s.PGSQL.5432 -rw------- 1 shiva wheel 57B Mar 11 08:03 .s.PGSQL.5432.lock drwx------ 3 shiva wheel 96B Mar 10 17:11 com.apple.launchd.C1tUB2MvF8 drwxr-xr-x 2 root wheel 64B Mar 10 17:10 powerlog
现在,有两种方法可以解决该错误
您可以更改应用程序配置,以查看/tmp/.s.PGSQL.5432上的套接字
/tmp/.s.PGSQL.5432
# config/database.yml default: &default adapter: postgresql pool: 5 # port: timeout: 5000 encoding: utf8 # min_messages: warning socket: /tmp/.s.PGSQL.5432
您可以创建指向预期位置的符号链接
$ sudo mkdir /var/pgsql_socket $ sudo ln /tmp/.s.PGSQL.5432 /var/pgsql_socket/
然后错误应该消失。希望这对你有帮助。
kuhbmx9i6#
试试这个对我有用的。sudo systemctl start postgresql然后sudo systemctl start postgresql个
tpgth1q77#
查看postgresql.log文件我的系统显示FATAL: lock file "postmaster.pid"已经存在,因此我删除了postmaster.pid文件并重新启动了服务,现在它可以正常工作了
FATAL: lock file "postmaster.pid"
λ /usr/local/var/postgres/ rm postmaster.pid λ /usr/local/var/postgres/ brew services restart postgresql
zlhcx6iw8#
要解决s.PGSQL.5432的问题,您必须执行以下操作:首先通过另一个路径更改unix_socket_directories postgresql.conf路径/ tmp /然后更新postgres和postgres加载成为,如果你想你可以把路径再次,并与它和充值的postgres正常.
8条答案
按热度按时间beq87vna1#
只需创建一个这样的软链接,这对我很有效
用于more info
zi8p0yeb2#
此外,您还可以强制停止服务器,然后强制启动服务器
sudo service postgresql stop --force
sudo service postgresql start --force
个krugob8w3#
我有这个错误,由于没有正确配置连接到数据库,正是因为语法错误,在设置环境变量,即.
错误的
MY_APP_DB= $MY_APP_DB_NAME
,而不是MY_APP_DB=$MY_APP_DB_NAME
hc2pp10m4#
bfrts1fy5#
首先,您需要确保
socket file
位于/var/run/postgresql/.s.PGSQL.5432
中。如果结果显示了什么,那么问题是其他的。但是,如果文件不在那里,你需要检查
/tmp
目录(特别是OSXHomebrew
用户)现在,有两种方法可以解决该错误
解决方案一
您可以更改应用程序配置,以查看
/tmp/.s.PGSQL.5432
上的套接字Rails用户
解决方案二
您可以创建指向预期位置的符号链接
然后错误应该消失。
希望这对你有帮助。
kuhbmx9i6#
试试这个对我有用的。
sudo systemctl start postgresql
然后
sudo systemctl start postgresql
个tpgth1q77#
查看postgresql.log文件
我的系统显示
FATAL: lock file "postmaster.pid"
已经存在,因此我删除了postmaster.pid文件并重新启动了服务,现在它可以正常工作了zlhcx6iw8#
要解决s.PGSQL.5432的问题,您必须执行以下操作:
首先通过另一个路径更改unix_socket_directories postgresql.conf路径/ tmp /
然后更新postgres和postgres加载成为,如果你想你可以把路径再次,并与它和充值的postgres正常.