我想在我的电脑Linux薄荷莎拉中安装postgresql,我完成程序安装,但是当我在我的cmd postgres错误中键入psql时,如下所示:
安装PostgreSQL时出错
psql:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
我怎么修好的?谢谢
该错误指出psql实用程序找不到要连接到数据库服务器的套接字 .
要么您没有在后台运行数据库服务,要么套接字位于其他地方,或者可能需要修复pg_hba.conf .
Step 1: Verify that the database is running
该命令可能因操作系统而异 . 但是在大多数* ix系统上,以下都可以工作,它将在所有正在运行的进程中搜索postgres
ps -ef | grep postgres
在我的系统上,mac osx,这会吐出来
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
最后一列显示用于启动服务器的命令和选项 .
您可以使用以下命令查看可用于启动postgres服务器的所有选项 .
man postgres
从那里,你会看到选项-D和-r分别是datadir和logfilename . Step 2: If the postgres service is running
使用find来搜索套接字的位置,该位置应位于/ tmp中的某个位置
sudo find /tmp/ -name .s.PGSQL.5432
如果postgres正在运行并接受套接字连接,则上面应该告诉您套接字的位置 . 在我的机器上,结果是:
/tmp/.s.PGSQL.5432
然后,尝试使用此文件的位置通过psql连接,例如 .
psql -h /tmp/ dbname
Step 3: If the service is running but you don't see a socket
如果找不到套接字,但看到该服务正在运行,请验证 pg_hba.conf 文件是否允许本地套接字 .
pg_hba.conf
浏览到datadir,您应该找到pg_hba.conf文件 .
默认情况下,在文件底部附近,您应该看到以下行:
# "local" is for Unix domain socket connections only local all all trust
如果您没有看到它,则可以修改该文件,然后重新启动postgres服务 .
1 回答
该错误指出psql实用程序找不到要连接到数据库服务器的套接字 .
要么您没有在后台运行数据库服务,要么套接字位于其他地方,或者可能需要修复pg_hba.conf .
Step 1: Verify that the database is running
该命令可能因操作系统而异 . 但是在大多数* ix系统上,以下都可以工作,它将在所有正在运行的进程中搜索postgres
在我的系统上,mac osx,这会吐出来
最后一列显示用于启动服务器的命令和选项 .
您可以使用以下命令查看可用于启动postgres服务器的所有选项 .
从那里,你会看到选项-D和-r分别是datadir和logfilename . Step 2: If the postgres service is running
使用find来搜索套接字的位置,该位置应位于/ tmp中的某个位置
如果postgres正在运行并接受套接字连接,则上面应该告诉您套接字的位置 . 在我的机器上,结果是:
然后,尝试使用此文件的位置通过psql连接,例如 .
Step 3: If the service is running but you don't see a socket
如果找不到套接字,但看到该服务正在运行,请验证
pg_hba.conf
文件是否允许本地套接字 .浏览到datadir,您应该找到pg_hba.conf文件 .
默认情况下,在文件底部附近,您应该看到以下行:
如果您没有看到它,则可以修改该文件,然后重新启动postgres服务 .