怎么解决[gpadmin@lm2hdp02 bin]$ psql -p 2345 -d postgres 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.2345"?
时间: 2024-03-06 08:51:20 浏览: 112
hdp-docker-env:Hortonworks Data Platform泊坞环境
出现该错误的原因可能是 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 域套接字文件的完整路径来连接。
阅读全文