GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo accedo a Postgres cuando recibo un error sobre /var/run/postgresql/.s.PGSQL.5432?

Si su servicio de Postgres está funcionando sin ningún error o no hay ningún error al iniciar el servicio de Postgres y sigue recibiendo el error mencionado, siga estos pasos

Paso 1:Ejecutar pg_lsclusters enumerará todos los clústeres de postgres que se ejecutan en su dispositivo

por ejemplo:

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 <version> <cluster> <action>
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 (Puede ver el registro de errores 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:comprobar la propiedad de postgres

Asegúrate de que postgres es el propietario de /var/lib/postgresql/version_no/main por ejemplo: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 tu psql está vinculado probablemente por defecto a /var/run/postgresql/ .

Prueba

psql -h /tmp

Si eso funciona, lo anterior es el problema. Puedes agregar export PGHOST=/tmp a tu .bashrc para cambiar el valor predeterminado localmente para su usuario.

Si eso no funciona, asegúrese de que PostgreSQL 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 del 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 un socket de dominio Unix"/var/run/postgresql/.s.PGSQL.5432"?

Este error generalmente significa que el servidor no se está ejecutando. Basado en dpkg -l salida y el hilo de comentarios, se debió al 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 archivos de datos y configuración todavía están ahí, así que apt-get install postgresql-9.5 puede solucionar el problema.


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Diferencia entre /var/log/messages, /var/log/syslog y /var/log/kern.log?

  3. Kubuntu muestra un error al iniciar sesión (file:///usr/share/sddm//themes/breeze/main.qml:no such file or directory)?

  4. Ubuntu 14.04 "¿no obtuvo un Uri de reproducción en el archivo de entrada:///*"?

  5. Cómo systemd-tmpfiles limpia /tmp/ o /var/tmp (reemplazo de tmpwatch) en CentOS/RHEL 7

¿Qué tan portátiles son /dev/stdin, /dev/stdout y /dev/stderr?

Debian – ¿Mover /var, /home a una partición separada?

CentOS / RHEL:Cómo rotar el archivo /var/log/wtmp y /var/log/btmp usando logrotate

Django static_root en /var/www/... - sin permisos para recopilar estática

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?