Dividir un dump MySQL

Responder
kosciuk
Mensajes: 1105
Registrado: 21 May 2007, 19:47
Ubicación: Capital Federal, Argentina
Contactar:

Dividir un dump MySQL

Mensaje por kosciuk »

Para que tenga que insertar un archivo SQL de 800 MBs (90MB comprimido) este código puede servirles para separar los insertas por base de datos (recuerden siempre usar el IF EXISTS cuando exportan)

Código: Seleccionar todo

$fp = fopen('localhost.sql', 'r');

while (!feof($fp))
{
 $name = '';
 $line = fgets($fp);

 if (stripos($line, "DROP DATABASE") !== false)
 {
  preg_match("|DROP DATABASE `([a-z0-9_-]+)`|", $line, $arr);

  if (isset($arr[1]))
  {
   $name = $arr[1].'.sql';
   $new = fopen($name, 'w');
  }
 }

 if (isset($new))
 {
  fputs($new, $line);
 }

 echo $i . ". ". $name."\n";
}
El código anterior les creará un archivo [nombre-db].sql por cada base de datos. Código bastante simple pero salvador.
Responder