Experimenté este problema al trabajar con PostgreSQL en Ubuntu 18.04.
Verifiqué el estado de mi PostgreSQL
y me di cuenta de que estaba funcionando correctamente usando:
sudo systemctl status postgresql
También intenté reiniciar el servidor de PostgreSQL
en la máquina usando:
sudo systemctl restart postgresql
pero el problema persistía:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Siguiendo la respuesta de Noushad hice lo siguiente:
Listar todos los clusters de Postgres que se están ejecutando en tu dispositivo:
pg_lsclusters
esto me dio esta salida en color rojo, mostrando que todos estaban parados y el estado también mostraba detenido:
Ver Cluster Port Status Owner Data directory Log file
10 main 5432 down postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
11 main 5433 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
12 main 5434 down postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
Reinicia el pg_ctlcluster para uno de los clusters del servidor. Para mí, reinicié PG 10:
sudo pg_ctlcluster 10 main start
Sin embargo, lanzó el siguiente error, y el mismo error ocurrió cuando intenté reiniciar otros clusters de PG:
El trabajo para el servicio postgresql@10-main.service falló porque el servicio no realizó los pasos requeridos por su configuración de unidad.
Consulte "systemctl status postgresql@10-main.service" y "journalctl -xe" para más detalles.
Verifica el registro de errores, en este caso el mío es PG 10:
sudo nano /var/log/postgresql/postgresql-10-main.log
Vi el siguiente error:
2020-09-29 02:27:06.445 WAT [25041] FATAL: data directory "/var/lib/postgresql/10/main" has group or world access
2020-09-29 02:27:06.445 WAT [25041] DETAIL: Permissions should be u=rwx (0700).
pg_ctl: could not start server
Examine the log output.
Esto se produjo porque hice cambios en los permisos de archivo para el directorio de datos de PostgreSQL.
Lo solucioné ejecutando el siguiente comando. Ejecuté el comando para los 3 clusters de PG en mi máquina:
sudo chmod -R 0700 /var/lib/postgresql/10/main
sudo chmod -R 0700 /var/lib/postgresql/11/main
sudo chmod -R 0700 /var/lib/postgresql/12/main
Luego reinicié cada uno de los clusters de PG:
sudo pg_ctlcluster 10 main start
sudo pg_ctlcluster 11 main start
sudo pg_ctlcluster 12 main start
Y finalmente verifiqué la salud de los clusters nuevamente:
pg_lsclusters
esta vez todo estaba bien de nuevo ya que el estado mostraba en línea:
Ver Cluster Port Status Owner Data directory Log file
10 main 5432 en línea postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
11 main 5433 en línea postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
12 main 5434 en línea postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
Es todo.
Espero que esto ayude