PDA

Ver la versión completa : DEBIAN y POSTGRESQL



rower
27-08-2008, 20:01
bueno que tal, estoy hace varios días con este problema.

estoy queriendo acceder a una base de datos (POSTGRESQL) remotamente. A efectos de probar la conección, instalé el POSTGRESQL con un cliente llamado pgadmin3 en 2 máquinas con windows. Para acceder a una base de datos remotamente, en el cliente pgadmin3 configuro la conexión para que me conecte a la otra máquina, indicándole la ip, el usuario, y la contraseña (en el servidor, ya modifiqué los 2 archivos para permitir las conexiones). Hasta aquí no tengo ningún problema, me conecta tanto desde una máquina como desde la otra.

el problema surge cuando quiero utilizar, en la misma máquina, pero con debian testing, el postgresql 8.3, con el mismo cliente (pgadmin3), también tengo editados los 2 archivos, pero en este caso, desde el debian puedo acceder a la base de datos de la máquina con windows, pero desde el windows, no me permite acceder a la base de datos en el debian, me dice que no escucha el puerto. En windows había tenido el mismo problema, pero lo solucioné desactivando el firewall, pero por lo que tengo entendido en debian no tengo firewall. Hay alguna forma que pueda habilitar los puertos en debian? es el 5432, si no es ese el problema, alguien sabe que puede estar pasando?

muchas gracias!

j8k6f4v9j
27-08-2008, 21:03
Primero debes asegurarte de que el demonio de postgresql está verdaderamente en ejecución.

Efectivamente se trata del puerto 5434, por lo que el siguiente comando:

netstat -atpn | grep LISTEN | grep 5434
ejecutado como root, debería producir una salida parecida a ésta:

tcp 0 0 127.0.0.1:5434 0.0.0.0:* LISTEN 3869/postgres
(cambiaría el número de PID)

También lo puedes comprobar con:

ps auxw | grep postgres
con una salida como:

postgres 3871 0.0 0.1 43016 1416 ? Ss 20:55 0:00 postgres: writer process
postgres 3872 0.0 0.1 43016 1244 ? Ss 20:55 0:00 postgres: wal writer process
postgres 3873 0.0 0.1 43152 1512 ? Ss 20:55 0:00 postgres: autovacuum launcher process
postgres 3874 0.0 0.1 14476 1216 ? Ss 20:55 0:00 postgres: stats collector process

Pero si te fijas, la dirección IP en la que escucha es la 127.0.0.1, eso significa que no podrás acceder desde una interfaz de red ordinaria. Para cambiarlo, debes editar el archivo de configuración. Por ejemplo, con postgresql-8.3 sería /etc/postgresql/8.3/main/postgresql.conf.

En la sección "CONNECTIONS AND AUTHENTICATION" tienes algo así:

#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)


descomenta la directiva listen_addresses y añade las direcciones (locales) en las que quieres que el servidor atienda peticiones.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

rower
28-08-2008, 15:26
j8 no sabes cuanto te agradezco, ya no sabía que hacer, fue un descuido mi problema. Parece ser que el POSTGRESQL versión windows no viene comentada la línea listen_addresses = 'localhost' ; por lo que solamente tuve que cambiar localhost por la ip de la máquina a la que debía escuchar, mientras que en Debian parece que sí viene comentada, y yo pasé por alto ese pequeño detalle.
ya está solucionado mi problema, muchas gracias
aha una correción, por si alguien lee este post, el puerto es el 5432, no el 5434

gracias!

j8k6f4v9j
28-08-2008, 15:52
Perfecto ;)

Cierro el tema.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad: