Instalé la pila de Bitnami Django que incluía PostgreSQL 8.4.
Cuando ejecuto psql -U postgres
me sale el siguiente error:
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"?
PG definitivamente se está ejecutando y el pg_hba.conf
archivo se ve así:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
¿Lo que da?
"Prueba" de que se está ejecutando pg:
root@assaf-desktop:/home/assaf# ps axf | grep postgres
14338 ? S 0:00 /opt/djangostack-1.3-0/postgresql/bin/postgres -D /opt/djangostack-1.3-0/postgresql/data -p 5432
14347 ? Ss 0:00 \_ postgres: writer process
14348 ? Ss 0:00 \_ postgres: wal writer process
14349 ? Ss 0:00 \_ postgres: autovacuum launcher process
14350 ? Ss 0:00 \_ postgres: stats collector process
15139 pts/1 S+ 0:00 \_ grep --color=auto postgres
root@assaf-desktop:/home/assaf# netstat -nltp | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 14338/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 14338/postgres
root@assaf-desktop:/home/assaf#
postgresql
Assaf Lavie
fuente
fuente
Respuestas:
Este problema proviene de la instalación del
postgres
paquete sin un número de versión. Aunquepostgres
se instalará y será la versión correcta, el script para configurar el clúster no se ejecutará correctamente; Es un problema de embalaje.Si se siente cómodo,
postgres
hay un script que puede ejecutar para crear este clúster y comenzar apostgres
ejecutarlo. Sin embargo, hay una manera más fácil.Primero purgue la antigua instalación de postgres. El problema actualmente radica en 9.1, así que supondré que eso es lo que has instalado
Ahora simplemente reinstale
Anote el nombre del paquete con el número de versión. HTH.
fuente
El mensaje de error se refiere a un socket de dominio Unix, por lo que debe modificar su
netstat
invocación para no excluirlos. Así que pruébalo sin la opción-t
:Supongo que el servidor realmente está escuchando en el zócalo en
/tmp/.s.PGSQL.5432
lugar del/var/run/postgresql/.s.PGSQL.5432
que su cliente está intentando conectarse. Este es un problema típico cuando se usan paquetes PostgreSQL compilados a mano o de terceros en Debian o Ubuntu, porque la fuente predeterminada para el directorio de socket de dominio Unix es/tmp
pero el paquete Debian lo cambia/var/run/postgresql
.Posibles soluciones:
/opt/djangostack-1.3-0/postgresql/bin/psql
). Posiblemente desinstale los paquetes proporcionados por Ubuntu por completo (puede ser difícil debido a otras dependencias inversas).-H localhost
para conectarse a través de TCP / IP en su lugar.-h /tmp
unaPGHOST
configuración equivalente para apuntar al directorio correcto.fuente
Esto funciona para mi:
Editar: postgresql.conf
Habilitar o agregar:
Reinicie el motor de la base de datos:
Además, puedes consultar el archivo
pg_hba.conf
Y agregue su red o dirección de host:
fuente
Puede usar
psql -U postgres -h localhost
para forzar la conexión a través de TCP en lugar de sockets de dominio UNIX; sunetstat
salida muestra que el servidor PostgreSQL está escuchando en el puerto 5432 de localhost.Puede averiguar qué socket UNIX local utiliza el servidor PostgrSQL utilizando una invocación diferente de netstat :
En cualquier caso, las interfaces en las que escucha el servidor PostgreSQL están configuradas
postgresql.conf
.fuente
Simplemente cree un enlace suave como este:
fuente
Hago que funcione haciendo esto:
Elija sus configuraciones regionales preferidas y luego ejecute
(9.5 es mi versión de postgresql)
y luego funciona!
fuente
service postgresql restart
pero dice que no tenía ningún clúster postgresql. Entonces encuentro esta manera de ayudarme :)dpkg-reconfigure locales
Es muy importante.Tuve que compilar PostgreSQL 8.1 en Debian Squeeze porque estoy usando Project Open, que se basa en OpenACS y no se ejecutará en versiones más recientes de PostgreSQL.
La configuración por defecto de compilación pone el
unix_socket
en/tmp
, pero Abrir proyecto, que se basa en PostgreSQL, no funcionaría, ya que busca elunix_socket
al/var/run/postgresql
.Hay una configuración
postgresql.conf
para establecer la ubicación del zócalo. Mi problema era que podía establecer/tmp
ypsql
trabajar, pero no abrir el proyecto, o podía configurarlo/var/run/postgresql
ypsql
no funcionaría, pero el proyecto abierto sí.Una solución al problema es establecer el socket
/var/run/postgresql
y luego ejecutarlopsql
, según la sugerencia de Peter, como:Esto se ejecuta localmente usando permisos locales. El único inconveniente es que es más tipeado que simplemente "psql".
La otra sugerencia que alguien hizo fue crear un enlace simbólico entre las dos ubicaciones. Esto también funcionó, pero el enlace desapareció al reiniciar. Tal vez sea más fácil usar el argumento -h, sin embargo, creé el enlace simbólico desde el script PostgreSQL en
/etc/init.d
. Coloqué el comando de creación de enlace simbólico en la sección "inicio". Por supuesto, cuando emito un comando detener e iniciar o reiniciar, intentará recrear un enlace simbólico existente, pero aparte del mensaje de advertencia, probablemente no haya ningún daño en eso.En mi caso, en lugar de:
yo tengo
y ha establecido explícitamente el unix_socket
/var/run/postgresql/.s.PGSQL.5432
enpostgresql.conf
.fuente
Solución:
Hacer esto
y esto. ( 9.3 es mi versión actual de PostgreSQL. ¡Escriba su versión!)
fuente
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: la ejecución
pg_lsclusters
enumerará todos los clústeres de Postgres que se ejecutan en su dispositivop.ej:
lo más probable es que el estado sea bajo en su caso y servicio postgres
Paso 2: reinicia el pg_ctlcluster
Paso 3: el paso 2 falló y arrojó un error
Si este proceso no tiene éxito, arrojará un error. Puedes ver el error de inicio de sesión
/var/log/postgresql/postgresql-9.6-main.log
Mi error fue:
Paso 4: verifique la propiedad de postgres
Asegúrate de que
postgres
sea el dueño de/var/lib/postgresql/version_no/main
Si no, corre
Paso 5: Verifique que el usuario postgres pertenece al grupo de usuarios ssl-cert
Resultó que había eliminado por error al usuario de Postgres del
ssl-cert
grupo. Ejecute el siguiente código para solucionar el problema del grupo de usuarios y corregir los permisosfuente
En mi caso, fue causado por un error tipográfico que hice mientras editaba
/etc/postgresql/9.5/main/pg_hba.conf
Cambié:
a:
Pero
MD5
tenía que estar en minúsculasmd5
:fuente
trusted
lugar detrust
, y no reinicié el servicio, y solo se rompió al día siguiente cuando ya olvidé lo que cambiéDescubrí que desinstalar Postgres no parece convincente. Esto ayuda a resolver mi problema:
Inicie el servidor postgres:
Asegúrese de que el servidor se inicie en el arranque:
Puede encontrar información detallada en el sitio de DigitalOcean aquí.
fuente
No pude resolver este problema con mi servidor postgres-9.5. Después de 3 días de progreso cero intentando cada permutación de corrección en este y otros sitios, decidí reinstalar el servidor y perder 5 días de trabajo. Pero sí reproduje el problema en la nueva instancia. Esto podría proporcionar alguna perspectiva sobre cómo solucionarlo antes de tomar el enfoque catastrófico que hice.
Primero, deshabilite todas las configuraciones de registro en postgresql.conf. Esta es la sección:
Comenta todo en esa sección. Luego reinicie el servicio.
Al reiniciar, use
/etc/init.d/postgresql start
orestart
me pareció útil estar en modo de superusuario mientras se reinicia. Tenía una ventana x abierta solo para esa operación. Puede establecer ese modo de superusuario consudo -i
.Verifique que se pueda llegar al servidor con este simple comando:
psql -l -U postgres
Si eso no lo soluciona, considere esto:
Estaba cambiando la propiedad de muchas carpetas mientras intentaba encontrar una solución. Sabía que probablemente estaría tratando de revertir las propiedades de las carpetas y
chmod
s por 2 días más. Si ya se ha metido con las propiedades de esas carpetas y no desea purgar completamente su servidor, comience a rastrear la configuración de todas las carpetas afectadas para que vuelvan al estado original. Es posible que desee intentar realizar una instalación paralela en otro sistema y verificar sistemáticamente la propiedad y la configuración de todas las carpetas. Tedioso, pero puede obtener acceso a sus datos.Una vez que obtenga acceso, cambie sistemáticamente cada línea relevante en la
# ERROR REPORTING AND LOGGING
sección delpostgresql.conf
archivo. Reiniciar y probar. Descubrí que la carpeta predeterminada para los registros estaba causando un error. Comenté específicamentelog_directory
. La carpeta predeterminada en la que el sistema coloca los registros es entonces/var/log/postgresql
.fuente
Posiblemente podría haber sucedido porque cambió los permisos de la
/var/lib/postgresql/9.3/main
carpeta.Intenta cambiarlo a 700 usando el siguiente comando:
fuente
Esto no está exactamente relacionado con la pregunta ya que estoy usando Flask, pero este fue el error exacto que recibí y este fue el hilo más relevante para obtener ideas.
Mi configuración: Subsistema de Windows para Linux, Docker-compose w / makefile w / dockerfile, Flask, Postgresql (usando un esquema que consiste en tablas)
Para conectarse a postgres, configure su cadena de conexión de esta manera:
NOTA: Nunca obtuve ninguna IP (por ejemplo, localhost, 127.0.0.1) para trabajar usando ningún método en este hilo. La idea para usar el nombre del contenedor en lugar de localhost surgió de aquí: https://github.com/docker-library/postgres/issues/297
Establece tu esquema:
Establezca su ruta de búsqueda para sus funciones cuando configure su sesión:
fuente
Tuve exactamente el mismo problema que Peter Eisentraut describió. Usando el
netstat -nlp | grep 5432
comando, pude ver que el servidor estaba escuchando en el socket/tmp/.s.PGSQL.5432
.Para solucionar esto, solo edite su
postgresql.conf
archivo y cambie las siguientes líneas:Ahora ejecute
service postgresql-9.4 restart
(Reemplace 9-4 con su versión), y las conexiones remotas deberían estar funcionando ahora.Ahora para permitir conexiones locales, simplemente cree un enlace simbólico al
/var/run/postgresql
directorio.No olvides asegurarte de que tu también
pg_hba.conf
esté configurado correctamente.fuente
En mi caso, todo lo que tenía que hacer era esto:
y entonces
Esto funcionó bien. Espero eso ayude. Salud :) .
fuente
Encuentra tu archivo:
Resultado:
Inicie sesión como usuario de postgres:
fuente
Tuve el mismo problema (en Ubuntu 15.10 (astuto)).
sudo find / -name 'pg_hba.conf' -print
osudo find / -name 'postgresql.conf' -print
apareció vacío. Antes de eso parecía que se instalaron varias instancias de postgresql.Es posible que tenga similar cuando vea como instalado, o una lista de problemas de dependencia
y así.
En ese caso, debe
sudo apt-get autoremove
cada paquete 1 por 1.Luego, sigue esto al pie de la letra y estarás bien. Especialmente cuando se trata de importar y agregar claves a la lista de origen PRIMERO
Si no usa wily, reemplácelo
wily
con su versión, es decir, con la salida delsb_release -cs
Y entonces deberías estar bien y ser capaz de conectarte y crear usuarios.
Rendimiento esperado:
Fuente de mis soluciones (créditos)
fuente
Mientras tenía el mismo problema, probé algo diferente:
Iniciando el demonio postgresql manualmente obtuve:
Así que lo que hice fue establecer un límite inferior para
shared_buffers
ymax_connections
dentropostgresql.conf
yrestart
el servicio.Esto solucionó el problema!
Aquí está el registro de errores completo:
fuente
¡Después de muchos intentos agotadores, encontré la solución basada en otras publicaciones!
fuente
Cree el directorio postgresql dentro de ejecutar y luego ejecute el siguiente comando.
fuente
Simplemente agregue / tmp unix_socket_directories
postgresql.conf
fuente