Estate atento porque en esta sección encontrarás la solución que buscas.
Solución:
Si su servicio de Postgres está funcionando sin ningún error o no hay ningún error al iniciar el servicio de Postgres y aún recibe el error mencionado, siga estos pasos
Paso 1: Correr pg_lsclusters
enumerará todos los clústeres de postgres que se ejecutan en su dispositivo
p.ej:
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
lo más probable es que el estado sea inactivo en su caso. Intente reiniciar los clústeres y el servicio de Postgres
Paso 2: reiniciar pg_ctlcluster
#format is pg_ctlcluster
sudo pg_ctlcluster 9.6 main start
#restart postgresql service
sudo service postgresql restart
Paso 3: el paso 2 falló y arrojó un error
Si este proceso no tiene éxito, arrojará el error. Mi error fue (Puedes ver el registro de error en /var/log/postgresql/postgresql-9.6-main.log
)
FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Try adding `postgres` user to the group `ssl-cert`
Paso 4: verificar la propiedad de postgres
Asegúrate de eso postgres
es el dueño de /var/lib/postgresql/version_no/main
p.ej: sudo chown postgres -R /var/lib/postgresql/9.6/main/
Paso 5: verifique que el usuario de Postgres pertenezca al grupo de usuarios ssl-cert
Me pasó y resultó que eliminé por error al usuario de Postgres del grupo “ssl-cert”. Ejecute el siguiente código para solucionar el problema del grupo de usuarios y corregir los permisos
#set user to group back with
sudo gpasswd -a postgres ssl-cert
# Fixed ownership and mode
sudo chown root:ssl-cert /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key
sudo service postgresql restart
Probablemente tenga varias versiones de PostgreSQL instaladas. Si es así, la otra versión probablemente tenga como valor predeterminado unix_socket_directories = '/tmp/'
pero el libpq
su psql
está vinculado a probablemente por defecto a /var/run/postgresql/
.
Tratar
psql -h /tmp
Si eso funciona, lo anterior es el problema. Puedes añadir export PGHOST=/tmp
para usted .bashrc
para cambiar el valor predeterminado localmente para su usuario.
Si eso no trabajo, asegúrese de que PostgreSQL realmente se está ejecutando
ps aux |grep postgres
y si no, ponerlo en marcha. Cómo depende de cómo lo hayas instalado, pero será a través de la service
o systemctl
comando(s) si instaló usando paquetes.
psql: no se pudo conectar al servidor: no existe tal archivo o directorio ¿El servidor se ejecuta localmente y acepta conexiones en el socket de dominio Unix “/var/run/postgresql/.s.PGSQL.5432”?
Este error generalmente significa que el servidor no se está ejecutando. Residencia en dpkg -l
salida y el hilo de comentarios, se debió a la postgresql-9.5
el paquete principal se desinstaló de alguna manera. Dado que la desinstalación no se ha llamado con el --purge
opción a dpkg
los datos y los archivos de configuración todavía están allí, por lo que apt-get install postgresql-9.5
puede solucionar el problema.
valoraciones y reseñas
Nos puedes patrocinar nuestro quehacer mostrando un comentario y dejando una puntuación te damos la bienvenida.