为了运行Apache AGE,我从源代码构建了postgres 12,启用了--debug标志,并按照给出的说明进行操作。在成功构建后(在wsl 2上的ubuntu中),我尝试使用psql命令运行它,但它一直给出错误。
我试着逃跑psql -U postgres
但这给了我以下错误psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory Is the server running locally and accepting connections on that socket?
但是如果我跑了psql -h localhost -p 5432 -U postgres
我可以连接到服务器。我已经谷歌了几个小时,但我不知道是什么问题。
4条答案
按热度按时间e0bqpujr1#
这可能是由于多种原因造成的。除了其他答案,您可以尝试检查WSL2正在使用什么进行TCP连接。
我遇到了同样的问题运行没有一个VPN,但只要我连接到同一个VPN(在我连接到的特定位置)在安装时,它神奇地工作。
https://gist.github.com/machuu/7663aa653828d81efbc2aaad6e3b1431
描述了我在WSL2上产生的相同错误消息的问题。
e5njpo682#
这是因为您尚未连接到数据库服务器。使用
bin/initdb <db_cluster>
创建数据库集群后,可以使用注意:* 为了运行这些命令,你需要在你下载PostgreSQL的目录中(该目录有许多其他的子目录,如bin,contrib,src,doc<db_cluster>等)。* 然后你可以启动psql命令行来与数据库postgres交互
3bygqnnd3#
您当前正在使用
-U
标志指定用户名,但尚未提供实际用户名。要解决此问题,您可以尝试使用以下命令:请将
<username>
占位符替换为您的系统用户名,将<database>
替换为(默认值为postgres
)在运行该命令之前,请确保已使用
pg_ctl
命令启动服务器。请注意,您可以使用更简单的语句来连接到PostgreSQL数据库,而无需显式使用
-h
,-p
和-U
标志。这是因为,默认情况下,将连接到localhost:5432
,并且用户名将是您系统的默认用户名。您可以尝试使用以下语句:vm0i2vca4#
在运行psql之前,你必须先启动服务器。你可以通过运行以下命令来启动服务器。
pg_ctl -D '数据库名称' -l日志文件开始
启动服务器后,可以运行psql。
这就是为什么你会得到一个错误的主要问题。服务器在运行psql之前没有启动。