Error en conexion de PHP5 con posgreSQL8.3

Imagen de amoxto

Tema: 

Hola amigos de ecualug instale un servidor apache2 con php5 y postgresql8.3 en Debian Lenny funciona bien todo menos la conexion con la base de datos siempre me sale un mesaje de error pidiendo mas datos en la conexion, ejemplo:
-----------------------------------------------------------
<?PHP
$conecta = pg_connect("dbname=postgres");
/*pa probar la conexion*/
?>
-----------------------------------------------------------
Me reproduce el siguente error:
-----------------------------------------------------------
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: la autentificación Ident falló para el usuario «www-data» in /var/www/conexion.php on line 2
-----------------------------------------------------------
Me sigue aparecioendo esto aun que le ponga nombre de usuario, o contraseña, etc?
-----------------------------------------------------------
<?PHP
$conecta = pg_connect("user=amoxto dbname=prueba");
f (!$conecta)
{
echo "

Ocurrio un error conectando a la base de datos.

";
exit;
}
?>
-----------------------------------------------------------
Reproduce:
-----------------------------------------------------------
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: la autentificación Ident falló para el usuario «amoxto» in /var/www/conexion.php on line 2
-----------------------------------------------------------

No se que de que se trata el error :( .Espero alguien me pueda dar una mano.

Gracias

Saludos!

amoxto

Comentarios

Roles de Usuario

[quote]
<?PHP
$conecta = pg_connect("user=amoxto dbname=prueba");
f (!$conecta)
{
echo "

Ocurrio un error conectando a la base de datos.

";
exit;
}
?>
[/quote]

amoxto tiene un rol en postgres?. has probado desde tu terminal


amoxto@tumaquina$ psql dbname

[b]question = ? be : !be; [/b]

[b]question = ? be : !be; [/b]

Claro que si

Imagen de amoxto

Hola Gracias, su obiamente amoxto es un usuario de postgresql ;) , ejemplo:


amoxto@amoxto:~$ psql -l
Listado de base de datos
Nombre | Dueño | Codificación
-----------+----------+--------------
brazamon | amoxto | UTF8
gforge | postgres | UTF8

Revisa el pg_hba.conf

Revisa el pg_hba.conf del postgres en tu Debian.
Debes tener una línea que haga referencia al host desde el cual te vas a conectar a la BD y un usuario para la misma.

Por lo que veo, parece que el usuario apache2 (www-data) es quien se está conectando a la BD e imagino que éste no tiene permisos en el pg_hba.conf.

En unas pruebas que estaba haciendo utilizaba el mismo usuario del Postgre y su clave y pues como a fin de cuenta quien interactúa con tu BD es el mismo Debian el host debe ser localhost.

$conn = pg_connect("user=postgres password=postgres host=localhost port=5432 dbname=base");

_fR@Nk_

_fR@Nk_

nada

Imagen de amoxto

Hola gracias por la sugerencia ya estube revisando, incluso probe algo como lo que pusistes "conn = pg_connect("user=postgres password= host=localhost port=5432 dbname=base");" y nada.

Y reproduce lo mismo:
------------------------------------------------------
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: la autentificación Ident falló para el usuario «postgres» in /var/www/conexion.php on line 2
------------------------------------------------------

Gracias

Configuración Postgresql

Imagen de marcelosilva

Configuración Postgresql, Verifica el archivo pg_hba.conf tenga permisos para ingresar

host all all 127.0.0.1/32 md5

También tienes que cambiar en el archivo postgresql.conf la linea del listen_adresses

listen_addresses = '*'

Y reinicia el servicio de postgresql

Saludos

Marcelo Silva

Igual

Imagen de amoxto

Hola :( gracias en el archivo de configuracion postgresql.conf, la linea listen_addresses = 'localhost' estaba conmentada.

El otro archivo de configuracion postgresql pg_hba.conf lo tengo como asi:


# Database administrative login by UNIX sockets
local all postgres ident sameuser

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all ident sameuser
# IPv4 local connections:
host all all 127.0.0.1/32 md5
#host all all 192.168.25.0 255.255.255.0 md5

# IPv6 local connections:
host all all ::1/128 md5

ya reinicie todo y sigue igual :?

:(
gracias

Si lo probe

Imagen de amoxto

Gracias ;) si lo probe asi y sigue saliendo el mismo mensaje hace mucho hice lo mismo pero con debian etch y postgresql8 y no tube problemas no se por que esta version esta "jodida" jeje ;)

Revizar el Log

Imagen de marcelosilva

Revizar el Log de la base de datos para ver que error te da al momento de realizar la conexión a la base de datos


sudo tail -f /var/log/postgresql/postgresql-8.3-main.log

Postealo para ver que mensajes te salen y ver que mas puede ser el error

Puedes también poner en ph_hba.conf la conexión como trust para realizar la prueba de conexión, pero ten en cuenta que con trust podras ingresar con cualquier clave a la base de datos.

Saludos

Marcelo Silva

Gracias

Imagen de amoxto

Gracias pana, estoy revisando el log, y sale esto:


2008-07-25 23:56:52 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:52 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:53 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:53 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:54 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:54 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:55 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:55 ECT FATAL: la autentificación password falló para el usuario «postgres»
2008-07-25 23:56:55 ECT LOG: el paquete de inicio está incompleto
2008-07-26 00:02:01 ECT LOG: el paquete de inicio está incompleto

Garcias

Saludos

Páginas