Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2006, 05:12
vicox19
 
Fecha de Ingreso: julio-2006
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
pg_dump con php en windows

El problema basicamente es que el pg_dump de postgres para Win32 no deja meter como parametro la contraseña, lo cual no permite ejecutar el pg_dump desde php. SI corre desde linea de comandos(cmd.exe) ya que cuando ejecuto la sentencia:
c:\Archivos de Programa\PostgreSQL\8.0\bin> (o donde este la carpeta bin de postgres)

y escribimos : pg_dump nombre_database > c:\nombre_del_respaldo.bak

me pide nombre de usuario:
me pide password:

y me genera sin problema el backup de la BD.

pero si llamo al pg_dump desde php tendria que usar algo asi:
[recomiendo que copien el archivo pg_dump.exe al C:\ para cuestiones de prueba]
<?php
system('\! C:\pg_dump BD > C:\BD.sql');
?>
corre, crea el archivito BD.sql pero en blanco. ya que no puedo enviar la contraseña...[el nombre de usuario se envia con -U user]

ahora...explorando por internet encontre un truquillo....pero jala....

editae el archivo pg_hba.conf qne este en C:\Archivos de programa\PostgreSQL\8.0\data\ buscar la linea:
host all all 127.0.0.1/32 md5
y remplazar por:
#host all all 127.0.0.1/32 trust
donde dice 'md5' cambialo a 'trust' con esto ya no te pide el password, despues reinicia el servidor de postgres.
pero dicen que es un grann problema de seguridad...al hacer eso..estoy dejando un gran agujero en mi DB...lo cual no es bueno.
para hacer dar:
<php?
system('C:\respaldo.bat');
?>
se crean un archivito en el C:\ llamado respaldo.bat [o cualquier nombre y lo llaman desde php]y dentro le ponen esta unica linea:
C:\pg_dump -C -D -O -U [USER] [nom_BD] > c:\DB.sql
EJemplo: C:\pg_dump -C -D -O -U postgres myBD > c:\backup.sql
y hagan correr su scrip PHP y listo. funciona por que desabilitamos que nos pida password.

ahora...si alguien sabe una manera correcta y SEGURA de sacar backups desde PHP porfa AVISENME!!! estoy vaaarios dias investigando y les comparto mi experiencia aprendida . BYE BYE

Última edición por vicox19; 06/07/2006 a las 05:22