Página 1 de 2

PSQL sin conexión

NotaPublicado: 2016-12-20 14:19 @638
por seafree
Hola, buenas tardes, me encuentro migrando mi aplicación que se encontraba en LRHE a CentOS 7, he tenido varios detalles, pero el servicio web y postgresql estaban funcionando bien, sin embargo en estos momentos al acceder a datos almacenados en la base de datos desde el usuario de postgresql me muestra el siguiente error:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
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"?
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Ya revisé el FIREWALL y sí tiene habilitado el puerto 5432.

Observación: Desde su instalación el acceso fue correcto sin embargo ahora ya no, agradeceré alguien me ayude a reconocer qué le modifique por error.

De verdad, agradezco el apoyo.

Re: PSQL sin conexión

NotaPublicado: 2016-12-22 11:56 @539
por explorer
El error no habla nada de conexión por TCP a un determinado puerto. Habla de que el servidor debe estar funcionando localmente, y que la comunicación se quiere hacer a través de un socket Unix (un archivo especial, dentro de /var/run/postgresql/).

Re: PSQL sin conexión

NotaPublicado: 2017-01-16 12:15 @552
por seafree
Gracias, explorer, pero ¿qué pudo haber sucedido porque podía acceder a las bases de datos desde el prompt de PostgreSQL y ahora ya no se puede?

Por otro lado, ¿el archivo dentro de /var/run/postgresql/ lo tengo que crear? Actualmente no existe ningún archivo en /var/run/postgresql/

Gracias.

Re: PSQL sin conexión

NotaPublicado: 2017-01-16 17:19 @763
por explorer
Lo normal es que dentro de ese directorio aparezca un archivo .pid o algo parecido, conteniendo el número de proceso que el postgreSQL ocupa en el sistema. Y ese archivo se crea/destruye de forma automática con los scripts de arranque/parada que están en /etc/init.d/ o ejecutando los comandos de control de systemd o service (sigue leyendo más abajo). Y una vez creado ese archivo pid, creará el archivo socket Unix, que es lo que dice el mensaje de error.

A mi me suena que el postgreSQL se ha desinstalado, o se ha intentado actualizar y algo se ha roto, que impide que arranque bien.

Intentaría hacer una reinstalación del postgreSQL, para ver si así consigue arrancar. Mejor dicho: primero hay que hacer la reinstalación y luego ejecutar el /etc/init.d/pg restart (o algo parecido) o usar service postgresql restart o systemd postgresql restart (o algo parecido).

Si el postgreSQL está instalado, pero no arranca, hay que consultar los registros de actividad del sistema (archivos .log) porque es allí donde vendrá más detallado el fallo. Dentro de /var/log, puede ser syslog, o messages, o en el propio archivo de registro de postgreSQL (estará por ahí cerca), o daemon.log

Re: PSQL sin conexión

NotaPublicado: 2017-01-18 12:38 @568
por seafree
Sigo intentando habilitar postgresql y verificando su estado. Encontré:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
# systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2017-01-18 11:17:32 CST; 5min ago
  Process: 9353 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE)
  Process: 9346 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)

Jan 18 11:17:30 localhost.localdomain systemd[1]: Starting PostgreSQL database server...
Jan 18 11:17:31 localhost.localdomain pg_ctl[9353]: LOG:  unrecognized configuration parameter "max_fsm_pages" in file "/v...e 120
Jan 18 11:17:31 localhost.localdomain pg_ctl[9353]: FATAL:  configuration file "/var/lib/pgsql/data/postgresql.conf" conta...rrors
Jan 18 11:17:32 localhost.localdomain pg_ctl[9353]: pg_ctl: could not start server
Jan 18 11:17:32 localhost.localdomain pg_ctl[9353]: Examine the log output.
Jan 18 11:17:32 localhost.localdomain systemd[1]: postgresql.service: control process exited, code=exited status=1
Jan 18 11:17:32 localhost.localdomain systemd[1]: Failed to start PostgreSQL database server.
Jan 18 11:17:32 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state.
Jan 18 11:17:32 localhost.localdomain systemd[1]: postgresql.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Estoy utilizando CentOS 7. Busco pero no encuentro una solución, ¿tendrás alguna idea?

Gracias.

Re: PSQL sin conexión

NotaPublicado: 2017-01-18 14:17 @636
por seafree
Cometí un grave error: borré postgresql:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
#yum remove postgresql 9.2.18
Dependencies Resolved

Dependencies Resolved


 Package                              Arch                      Version                            Repository                Size

Removing:
 postgresql                           x86_64                    9.2.18-1.el7                       @base                     16 M
Removing for dependencies:
 postgresql-docs                      x86_64                    9.2.18-1.el7                       @base                    7.1 M
 postgresql-server                    x86_64                    9.2.18-1.el7                       @base                     16 M

Transaction Summary

Remove  1 Package (+2 Dependent packages)

Installed size: 39 M
Is this ok [y/N]: y  
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : postgresql-server-9.2.18-1.el7.x86_64                                                                          1/3
  Erasing    : postgresql-docs-9.2.18-1.el7.x86_64                                                                            2/3
  Erasing    : postgresql-9.2.18-1.el7.x86_64                                                                                 3/3
  Verifying  : postgresql-9.2.18-1.el7.x86_64                                                                                 1/3
  Verifying  : postgresql-docs-9.2.18-1.el7.x86_64                                                                            2/3
  Verifying  : postgresql-server-9.2.18-1.el7.x86_64                                                                          3/3

Removed:
  postgresql.x86_64 0:9.2.18-1.el7                                                                                                

Dependency Removed:
  postgresql-docs.x86_64 0:9.2.18-1.el7                          postgresql-server.x86_64 0:9.2.18-1.el7                        

Complete!

# yum install postgresql.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.host-engine.com
 * epel: fedora-epel.mirror.lstn.net
 * extras: centos-distro.1gservers.com
 * updates: centos.mirror.constant.com
Resolving Dependencies
--> Running transaction check
---> Package postgresql.x86_64 0:9.2.18-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved


 Package             Arch            Version                Repository     Size

Installing:
 postgresql          x86_64          9.2.18-1.el7           base          3.0 M

Transaction Summary

Install  1 Package

Total download size: 3.0 M
Installed size: 16 M
Is this ok [y/d/N]: y
Downloading packages:
postgresql-9.2.18-1.el7.x86_64.rpm                         | 3.0 MB   01:17    
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : postgresql-9.2.18-1.el7.x86_64                               1/1
  Verifying  : postgresql-9.2.18-1.el7.x86_64                               1/1

Installed:
  postgresql.x86_64 0:9.2.18-1.el7                                              

Complete!
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

y ahora no lo puedo iniciar. Ayuda, por favor.

Re: PSQL sin conexión

NotaPublicado: 2017-01-18 16:18 @721
por explorer
El comando systemctl status postgresql.service te da la pista de lo que pasa:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. Jan 18 11:17:30 localhost.localdomain systemd[1]: Starting PostgreSQL database server...
  2. Jan 18 11:17:31 localhost.localdomain pg_ctl[9353]: LOG:  unrecognized configuration parameter "max_fsm_pages" in file "/v...e 120
  3. Jan 18 11:17:31 localhost.localdomain pg_ctl[9353]: FATAL:  configuration file "/var/lib/pgsql/data/postgresql.conf" conta...rrors
  4. Jan 18 11:17:32 localhost.localdomain pg_ctl[9353]: pg_ctl: could not start server
  5. Jan 18 11:17:32 localhost.localdomain pg_ctl[9353]: Examine the log output.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

La línea 1 indica el momento del arranque del PostgreSQL, bien por que se ha reiniciado la máquina, o por que has ejecutado el comando systemctl start postgresql.service o el systemctl restart postgresql.service

La línea 2 informa de un error: hay un parámetro desconocido llamado "max_fsm_pages" en un archivo que se llama... (no lo sabemos porque está cortado el mensaje ahí).

La línea 3 informa de un error fatal: el archivo de configuración /var/lib/pgsql/data/postgresql.conf contiene errores.

La línea 4 informa que el proceso pg_ctl no puede iniciar el servidor.

Finalmente, la línea 5 indica que debes consultar el archivo log del servidor PostgreSQL para ver si hay más detalles.

Pues eso es lo que pasa: que en el archivo de configuración hay algo que está mal.

Y no vale con desinstalar y volver a instalar: lo más seguro es que el proceso de desinstalación no borre todos los archivos de configuración, por lo que, después, a la hora de instalarlo, el problema persiste. Una solución sería borrar esos archivos después de la desinstalación, pero claro... puedes perder configuraciones de bases de datos que ya tuvieses creadas antes.

Yo lo que haría sería ir a la línea que me dicen, y ver qué pasa con ese parámetro erróneo.

Otro truco muy bueno consiste en copiar el mensaje de error y buscarlo tal cual en Google. Por ejemplo, la búsqueda lleva a un hilo donde dicen que ese parámetro es obsoleto, por lo que hay que quitarlo.

Re: PSQL sin conexión

NotaPublicado: 2017-01-18 16:43 @738
por seafree
Gracias, explorer, lo raro es que ya accedía a las bases de datos, por lo que no quise mover el archivo postgresql.conf y comencé a investigar posibles soluciones. Voy a realizar los cambios de acuerdo a lo que muestra el comando systemctl status postgresql.service

Saludos.

Re: PSQL sin conexión

NotaPublicado: 2017-01-19 12:45 @573
por seafree
explorer, eres increíble. Perdí las bases de datos pero tengo respaldos.

Eres grandioso, gracias.

Re: PSQL sin conexión

NotaPublicado: 2017-01-23 11:13 @509
por seafree
¿Qué tal, explorer? Como te comenté en el último comentario pude realizar la conexión pero no completamente porque me muestra que no tiene permisos de conexión:

DBD::Pg::st execute failed: ERROR: permission denied for relation

El detalle está en la línea: $sth->execute;

Al parecer son problemas de permisos. Consultando los permisos de la base de datos a la que accedo por el momento (causas) muestra lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
postgres=# \l
                                   List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
 causas    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres         +
                                                                              | postgres=CTc/postgres+
                                                                              | root=CTc/postgres    +
                                                                              | seafree=CTc/postgres

# psql -U postgres -l
                                   List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
 causas   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres         +
                                                                | postgres=CTc/postgres+
                                                                | root=CTc/postgres    +
                                                                | seafree=CTc/postgres
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Supuestamente los permisos mostrados sí debo de poder consultar la base de datos. ¿O no?

Ojalá me puedas enviar tus comentarios. Gracias, explorer.