Foros del Web » Programando para Internet » PHP »

Problemas para conectar a PostgreSQL

Estas en el tema de Problemas para conectar a PostgreSQL en el foro de PHP en Foros del Web. PC: Pentium III S.O.: Windows ME Tengo instalado el paquete AppServ que contiene Apache, PHP y MySQL. Los aplicativos trabajan bien y estan intregados. La ...
  #1 (permalink)  
Antiguo 13/10/2003, 22:25
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 20 años, 10 meses
Puntos: 0
Problemas para conectar a PostgreSQL

PC: Pentium III
S.O.: Windows ME

Tengo instalado el paquete AppServ que contiene Apache, PHP y MySQL. Los aplicativos trabajan bien y estan intregados. La conexión a MySQL por medio de PHP no tiene problemas.

Mi propósito ahora es integrar PHP con la base de datos PostgreSQL que la tengo instalada en el ambiente cygwin que es un emulador de unix que trabaja en windows.
He realizado las modificaciones necesarias en el archivo php.ini a fin de que este habilitada la extensión php_pgsql.dll. He verificado que el mencionado dll está en el sub-directorio de extensiones de la carpeta php.
He escrito el script querysql.php que tiene el siguiente contenido:

<?php
$connstr = "dbname=test user=admin host=localhost port=5432";
$dbh = pg_connect($connstr);

if ($dbh)
{
echo "La conexión a la base de datos ha sido exitosa<br>";
}
else
{
echo "No se ha podido establecer conexión con la base de datos<br>";
}
?>

Cuando ingreso el URL: http://localhost/varios_php/querysql.php lo que obtengo es el siguiente mensaje de error:

"Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Socket error, no description available. (0x0000274D) Is the server running on host localhost and accepting TCP/IP connections on port 5432? . in c:\appserv\www\varios_php\querypgsql.php on line 3
No se ha podido establecer conexión con la base de datos"

¿Alguno de los que estan viendo este mensaje puede decirme donde estoy fallando?

¿Que debo hacer para que PHP pueda ver la base de datos PostgreSQL?

Gracias de antemano por cualquier ayuda
  #2 (permalink)  
Antiguo 14/10/2003, 14:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues eso ..

Cita:
Is the server running on host localhost and accepting TCP/IP connections on port 5432? .
Has revisado si tu PostGreSQL está corriendo en ese puerto y . está arriba (encendido .. corriendo);

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 14/10/2003, 20:28
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
revisa si tienes el puerto 5432 habilitado, yo trabajo de frente en linux y allí es:
en /etc/rc.d/init.d/postgresql
busca la linea que diga:
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

tienes que modificar esta linea agregando : -o "-i", tiene que quedar asi:

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -o "-i" -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

bien, luego grabas y reinicias el servicio:
/etc/rc.d/init.d/postgresql restart

-o "-i" es para habilitar las conexiones IP por el puerto 5432

por ultimo, revisa el archivo: pg_hba.conf
(yo lo tengo en: /var/lib/pgsql/data/pg_hba.conf)

local all trust
host all 127.0.0.1 255.255.255.255 trust
sin # si lo tiene no te permitirá conexiones locales

Suerte!
__________________
Jose A
  #4 (permalink)  
Antiguo 15/10/2003, 21:20
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 20 años, 10 meses
Puntos: 0
Para Cluster:

Si, PostgreSQL está corriendo y está usando el puerto por omisión que es 5432. La prueba de que corre es que puedo conectarme al Servidor mediante el cliente psql y ejecuto queries.

Cuando está corriendo el servidor aparece el archivo ".s.PGSQL.5432" en la carpeta C:\cygwin\tmp, lo cual me hace indicar que está usando el puerto 5432. Cuando habro este archivo con un editor veo que tiene la siguiente línea:
<socket> 1031
No sé si eso es correcto. Pero en general para mi está usando el puerto 5432.

Para J_aspillaga

Si bien cygwin emula a Linux en un ambiente Windows, la ubicación de sus archivos es propia. Te puedo decir que no tiene /etc/rc.d/init.d/ y hasta creo que no tiene la linea que tú mencionas. Yo arranco postgresql con el siguiente comando:
$pg_ctl -D /usr/share/postgresql/data -l logfile start

El pg_ctl no acepta la opción "i". He verificado con su --help y efectivamente no aparece indicada la opción "i".

En cuanto al archivo pg_hba que está ubicado en C:\cygwin\usr\share\postgresql\data\pg_hba; este tiene las siguientes líneas sin #:
local all all trust
host all all 127.0.0.1 255.255.255.255 trust

Es decir para mí el archivo pg_hba está OK.

La verdad que todavía sigo desorientado y no logro imaginarme el motivo de la falla de conexión por medio de PHP. A veces pienso que el motivo es tener a Apache y PHP en ambiente Windows puro y a PostgreSQL ambiente cygwin, a pesar de que los tres están ubicados en el mismo disco y partición.

Agradesco las respuestas así no hayan dado la solución total pero toda respuesta es gratamente recibida por mí.

Bueno no me queda más que seguir en espera de alguna otra sugerencia que me oriente hacía la solución del problema.
  #5 (permalink)  
Antiguo 17/10/2003, 20:51
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 20 años, 10 meses
Puntos: 0
Solo para decirles que ya solucioné el problema de conexión a postgreSQL de cygwin con PHP.

Releyendo las sugerencias anteriores, una frase indicada por J_Aspillaga ("...para habilitar las conexiones IP por el puerto 5432") me llevaron a revisar el archivo de configuración de postgresql.
El archivo tenía la siguiente línea:

#tcpip_socket = false

Lo modifiqué para que quedara así:

tcpip_socket = true

Y todo comenzó a trabajar como debe

Gracias por todo
  #6 (permalink)  
Antiguo 17/10/2003, 21:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
tejas ..

Te invito a realizar un pequeño tutorial de instalación de PG (PostgreSQL) en windows (con toda la experiencia que has adquirido).

Así nos servirá a todos (me incluyo .. pues hace tiempo me puse a probar PG en windows y desistí :( ...).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 18/10/2003, 23:20
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 20 años, 10 meses
Puntos: 0
Cluster

En realidad tengo poco experiencia, pero agradesco tu invitación y la acepto. Haré un borrador y cuando lo termine lo enviaré a ...¿Que dirección?
  #8 (permalink)  
Antiguo 18/10/2003, 23:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Aquí mismo tejas .. publicalo como una FAQ (es sólo responder al mensaje de FAQ's que está marcado como importante) .. e incluso si lo deseas podrías enviarlo a cvhds ("jefe" de todo esto xD) .. para que lo publique en Maestrosdelweb.com

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 18/10/2003 a las 23:29
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.