psql: could not connect to server: No such file or directory

本文介绍了解决使用psql连接PostgreSQL时遇到的“No such file or directory”错误的方法。通常有两种情况导致此问题:一是PostgreSQL服务未运行;二是配置文件中unix_socket_directory路径不正确。文章提供了检查服务状态及调整连接命令的解决方案。

有时候在主机上使用psql登录postgresql时,会报如下错误
$ psql
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.5432”?

一般是有两个原因
1)postgresql 没有启动,可以通过 ps -ef|grep -i postgres 确认
2)postgresql 根据 postgresql.conf 中的参数 unix_socket_directory 生成文件不在/tmp下

对应解决办法
1)启动postgresql
2)使用psql时指定 unix_socket_directory , 如下:

$ psql -h /var/run/postgresql/
psql (9.1.22)
Type "help" for help.

postgres=#

转载于:https://www.cnblogs.com/ctypyb2002/p/9793047.html

出现该错误的原因可能是 PostgreSQL 服务器没有在指定的端口或 Unix 域套接字文件上运行。您可以按照以下步骤来解决此问题: 1. 检查 PostgreSQL 服务器是否正在运行。您可以使用以下命令检查: ``` ps -ef | grep postgres ``` 如果 PostgreSQL 服务器正在运行,则应该会看到类似以下的输出: ``` postgres 12345 1 0 10:00 ? 00:00:01 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf ``` 其中 12345 是 PostgreSQL 服务器进程的 PID。 2. 检查 PostgreSQL 服务器是否在指定的端口上运行。您可以使用以下命令检查: ``` netstat -an | grep 2345 ``` 如果 PostgreSQL 服务器正在监听指定的端口,则应该会看到类似以下的输出: ``` tcp 0 0 127.0.0.1:2345 0.0.0.0:* LISTEN ``` 3. 检查 PostgreSQL 服务器是否在指定的 Unix 域套接字文件上运行。您可以使用以下命令检查: ``` ls -l /tmp/.s.PGSQL.2345 ``` 如果 PostgreSQL 服务器正在监听指定的 Unix 域套接字文件,则应该会看到类似以下的输出: ``` srwxrwxrwx 1 postgres postgres 0 10月 1 10:00 /tmp/.s.PGSQL.2345 ``` 如果文件不存在,则说明 PostgreSQL 服务器没有在该 Unix 域套接字文件上运行。 如果 PostgreSQL 服务器正在运行,并且在指定的端口或 Unix 域套接字文件上监听连接,则您可以尝试使用默认端口(5432)连接到服务器,或通过指定 Unix 域套接字文件的完整路径来连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值