Exportar e importar bases de datos MySQL grandes

Habitualmente para administrar una base de datos MySQL usaremos phpMyAdmin (phpmyadmin.net) pero en ocasiones, si nuestra base de datos es grande, nos encontraremos con problemas a la hora de exportar e importar datos por las limitaciones que PHP impone al tamaño máximo de los ficheros importados o la duración del tiempo de ejecución de los scripts.

En estos casos recurriremos a la consola utilizando dos comandos, mysqldump para volcar la base de datos en un fichero de texto y mysql para importar los datos. Lo haremos en dos pasos:

  1. Primero volcaremos la base de datos en un fichero de texto usando el comando mysqldump, siendo los parámetros el usuario de MySQL (USER), el servidor (SERVER) y el nombre de la base de datos a exportar (NAME). Si nuestra base de datos tiene gran cantidad de tablas usaremos la opción -skip-lock-tables para evitar el error Can’t open file when using LOCK TABLES:
    $ mysqldump --skip-lock-tables -u USER -p -h SERVER NAME > NAME.sql
    Enter password:
  2. Para importar los datos usaremos mysql, teniendo los parámetros el mismo significado:
    $ mysql -u USER -p -h SERVER NAME < NAME.sql
    Enter password:

Este método manual nos será de gran utilidad cuando tengamos que migrar de servidor grandes bases de datos, ya que nos permite evitar las limitaciones de PHP.

5 pensamientos en “Exportar e importar bases de datos MySQL grandes

  1. crash-n-burn

    La opción -skip-lock-tables realiza un backup completo de todas las tablas, pero sin bloquearlas.

    Con esta opción se evita el error Cant open file when using LOCK TABLES, pero se corre el riesgo de que si las tablas no están bloqueadas los datos pueden cambiar en medio del backup, lo que podría provocar que el backup tuviera datos inconsistentes.

    Existen otras opciones para evitar ese error, como detener la aplicación mientras se hace un backup, etc. La solución más adecuada dependerá de cada caso particular.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>