servidor sabe remotas postgres pg_hba para off for entry encontrar dónde configurar configuración conf conexiones archivo allow all postgresql psql

postgresql - remotas - postgres no sabe dónde encontrar el archivo de configuración del servidor



¿Por qué psql no puede conectarse al servidor? (13)

¡Resuelto! Aunque no sé qué sucedió, solo eliminé todas las cosas y las reinstalé. Este es el comando que utilicé para eliminarlo sudo apt-get --purge remove postgresql/* y dpkg -l | grep postgres dpkg -l | grep postgres . El último es encontrar todos los paquetes en caso de que no esté limpio.

psql y obtengo esto:

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"?

Utilicé sudo netstat -nlp | grep 5432 sudo netstat -nlp | grep 5432 para ver el estado pero no se mostró nada. Y busqué en línea, alguien me dijo que modificara pg_hba.conf pero no puedo locate este archivo. Y también probé este comando sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432 . No puede funcionar


Así que para mí y mis amigos que trabajan en una aplicación Node.js (con Postgres y Sequelize), tuvimos que

  1. brew install postgresql (a uno de nosotros le faltaba postgres, a uno de nosotros no lo estaba, y sin embargo, estábamos obteniendo el mismo mensaje de error que el que aparece arriba)

  2. brew services start postgresql **** (utilice Homebrew para iniciar postgres)

  3. createdb <name of database in config.json file>

  4. node_modules/.bin/sequelize db:migrate

  5. npm start


Durante la instalación nueva de postgresql. Por defecto, el nombre de usuario y la contraseña se asignan como "postgres". La característica que proporciona este RDBMS es agregar un rol para un nuevo usuario y crear una base de datos. Si está recibiendo tales errores:

  1. iniciar sesión por defecto nombre de usuario:

    root @ kalilinux: ~ # sudo -i -u postgres

  2. ype psql para solicitud interactiva

    postgres @ kalilinux: ~ $ psql

  3. Para salir del uso inmediato

    / q

  4. Para crear un nuevo rol de usuario.

    postgres @ kalilinux: ~ $ createuser --interactive

Ahora estas en el shell psql interacive. Disfrutar. No olvide iniciar sesión desde su nombre de usuario y escriba psql para shell.


El error indica que la utilidad psql no puede encontrar el zócalo para conectarse a su servidor de base de datos. O no tiene el servicio de base de datos ejecutándose en segundo plano, o el socket está ubicado en otro lugar, o tal vez el pg_hba.conf necesita ser arreglado.

Paso 1: verifique que la base de datos se está ejecutando

El comando puede variar dependiendo de su sistema operativo. Pero en la mayoría de los sistemas * ix, lo siguiente funcionaría, buscará postgres entre todos los procesos en ejecución

ps -ef | grep postgres

En mi sistema, Mac OSX, esto escupe.

501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log

La última columna muestra el comando utilizado para iniciar el servidor y las opciones.

Puede ver todas las opciones disponibles para iniciar el servidor de Postgres utilizando lo siguiente.

man postgres

A partir de ahí, verá que las opciones -D y -r son respectivamente el nombre de datadir y el nombre de logfilename .

Paso 2: Si el servicio de postgres se está ejecutando

Utilice find para buscar la ubicación del zócalo, que debería estar en algún lugar de /tmp

sudo find /tmp/ -name .s.PGSQL.5432

Si postgres se está ejecutando y acepta conexiones de zócalo, lo anterior debe indicarle la ubicación del zócalo. En mi máquina, resultó ser:

/tmp/.s.PGSQL.5432

Luego, intente conectarse a través de psql usando la ubicación de este archivo explícitamente, por ejemplo.

psql -h /tmp/ dbname

Paso 3: si el servicio se está ejecutando pero no ves un socket

Si no puede encontrar el socket, pero observa que el servicio se está ejecutando, verifique que el archivo pg_hba.conf permita sockets locales.

Busque el datadir y debería encontrar el archivo pg_hba.conf .

De forma predeterminada, cerca de la parte inferior del archivo debería ver las siguientes líneas:

# "local" is for Unix domain socket connections only local all all trust

Si no lo ve, puede modificar el archivo y reiniciar el servicio de postgres.


El error significa que el servidor de Postgres no se está ejecutando. Intenta iniciarlo:

sudo systemctl start postgresql

Asegúrese de que el servidor se inicia en el arranque:

sudo systemctl enable postgresql


Estaba enfrentando el mismo problema y

sudo su - postgres initdb --locale en_US.UTF-8 -D /var/lib/postgres/data exit sudo systemctl start postgresql sudo systemctl status postgresql

Esto funcionó para mí.


Me he encontrado con un problema similar un par de veces. Normalmente, solo hago una instalación nueva de PostgreSQL siguiendo este tutorial y eso resuelve el problema a costa de perder datos.

Estaba decidido a obtener una solución real hoy. Reiniciar PostgreSQL lo resolvió en ubuntu. sudo /etc/init.d/postgresql restart


Mi problema con este mensaje de error estaba en los permisos incorrectos en los certificados de clave y pem, que he manipulado. Lo que me ayudó mucho fue: /var/log/postgresql/postgresql-9.5-main.log donde están todos los errores.


Puede causar cualquier cosa, por ejemplo, mi problema fue causado por un error tipográfico en los archivos de configuración. Algunas personas dicen que son causadas por archivos de certificados, otro grupo dice que son causadas por locales sin igual.

Si no puede encontrar una solución a su problema, elimine postgres y vuelva a instalarlo. Esta es la mejor solución.


Si no hay ningún error al iniciar el servicio de postgres, siga estos pasos

Paso 1: la ejecución de pg_lsclusters mostrará una lista de 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 bajo en su caso y en el servicio postgres

Paso 2: Reinicia el pg_ctlcluster

#format is pg_ctlcluster <version> <cluster> <action> sudo pg_ctlcluster 9.6 main start #restart postgres sudo service postgres restart

Paso 3: Paso 2 falló y arrojó error

Si este proceso no tiene éxito, lanzará 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úrese de que postgres sea ​​el propietario de /var/lib/postgresql/version_no/main por ejemplo: sudo chown postgres -R /var/lib/postgresql/9.6/main/

Paso 5: Verificar que el usuario de Postgres pertenece al grupo de usuarios ssl-cert

Me sucedió 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 # now postgresql starts! (and install command doesn''t fail anymore) sudo service postgres restart


Solo quiere hacer una pequeña adición: si su instancia se queja en un socket, también puede consultar unix_socket_directories en el archivo /data/postgresql.conf que podría haberse establecido en /tmp , por ejemplo, si ha utilizado una distribución de terceros. . Puede cambiarlo a /var/run/postgresql y reiniciar el servicio. Esto también puede requerir la creación de un directorio postgresql en /var/run y subsys/postgresql-9.6 en /var/lock si esos no existen (funcionó para mí con postgresql 9.6).


Tuve el mismo problema con Devuan ascii (¿quizás Debian también?). El archivo de configuración /etc/postgresql/9.6/main/postgresql.conf contiene una directiva unix_socket_directories que apunta a /var/run/postgresql de forma predeterminada. Al cambiarlo a /tmp , donde la mayoría de los clientes se ven por defecto, lo solucioné para mí.


guía rápida sobre debian:

  1. edite /etc/postgresql/10/main/postgresql.conf con listen_address *
  2. edite /etc/postgresql/10/main/pg_hba.conf y agregue una línea al final con host all all 0/0 md5
  3. crear un rol de inicio de sesión postgres=# CREATE ROLE remoteuser LOGIN WITH PASSWORD ''foo''
  4. sudo /etc/init.d/postgresql restart cambios de sudo /etc/init.d/postgresql restart surten efecto

  5. inicie sesión desde el lado del psql --host=ipofserver --port=5432 --username=remoteuser --password --dbname=mydb con psql --host=ipofserver --port=5432 --username=remoteuser --password --dbname=mydb

  6. la contraseña se pregunta de forma interactiva, que en este caso es foo

eso es cómo acceder de forma remota a la base de datos postgres en el servidor desde el cliente psql