¿Cómo se pueden importar y exportar bases de datos MySQL?
Las páginas web modernas generan su contenido de forma dinámica: eso significa que toda la información importante se almacena en una base de datos. Algunos formatos, como por ejemplo SQLite, guardan sus registros en un archivo sencillo; la mayoría, sin embargo, como MySQL y MariaDB, los mantienen exclusivamente en la memoria RAM para garantizar un alto rendimiento. Es muy recomendable hacer copias de seguridad mediante exportaciones a intervalos regulares, para poder restaurar todos los datos hasta un punto determinado en caso de problemas imprevistos —por ejemplo, una caída del servidor por fallo de hardware—. Para crear una copia de seguridad importable existen distintos métodos y procedimientos.
¿Cómo se realiza la copia de seguridad de una base de datos MySQL o MariaDB?
Una base de datos MySQL consiste en una serie de registros que se pueden crear, eliminar, modificar y vincular entre sí. Una aplicación de servidor los gestiona en un área determinada y protegida de la memoria RAM, de modo que la información actual no está disponible durante la operación en forma de un único archivo. El acceso se realiza mediante el lenguaje de bases de datos SQL, desarrollado ya en los años 70, con el que se pueden consultar entradas individuales o conjuntos completos de registros.
MySQL y MariaDB también almacenan sus registros en discos para poder, por ejemplo, volver a cargarlos tras un reinicio; sin embargo, esto se hace en un formato codificado en binario que no es adecuado para exportar o importar. Para crear una copia de seguridad de una base de datos o de un servidor entero, es necesario consultar colectivamente los contenidos y convertirlos a un formato legible. A continuación, una herramienta auxiliar los escribe en un archivo, donde quedan en un texto plano universalmente utilizable. Un archivo así no está ligado a un sistema operativo concreto ni a una versión de software y —con ciertas limitaciones— ni siquiera a un sistema de bases de datos como MySQL, PostgreSQL, Oracle Database o Microsoft SQL Server. Con un IDE o editor de PHP suele ser posible también crear e importar una base de datos local.
¿Qué métodos se recomiendan para exportar una base de datos?
Exportar periódicamente una base de datos constituye, salvo en pocas excepciones, un paso incluso más importante que la copia de seguridad del sitio web - mientras que un sitio web basado en un sistema de gestión de contenidos (CMS) en muchos casos puede reconstruirse, la información almacenada es única y no puede recuperarse, sino únicamente importándose desde una copia de seguridad. Para exportar existen distintos métodos:
- Exportación directa mediante comandos en la línea de comandos
- Uso de interfaces web como PhpMyAdmin o Adminer
- Paneles de administración de servidores como Plesk, DirectAdmin o WebMin
- En algunos proveedores, a través de la interfaz de usuario del panel de cliente
- Scripts en un lenguaje de programación como Bash o PHP
Si se examina más de cerca, sin embargo, se aprecia que las apariencias engañan desde un punto de vista técnico: de hecho, muchos de los métodos mencionados operan mediante la línea de comandos o únicamente ofrecen una máscara o una interfaz gráfica para la introducción manual de comandos. A fin de cuentas, la exportación siempre se realiza directamente a través del servidor de bases de datos o —en muchos casos— por motivos de rendimiento a través de las herramientas en la línea de comandos que lo acompañan, como mysqldump. Esta circunstancia es tan lógica como evidente, ya que lenguajes de programación como PHP no tienen acceso directo a las bases de datos, sino que se comunican exclusivamente con el servidor responsable.
¿Cómo se exportan bases de datos desde la línea de comandos?
La línea de comandos se denomina en Linux y en Windows una shell o un terminal: se trata de una entrada de texto de una sola línea mediante la cual se pueden escribir y ejecutar comandos y, por tanto, administrar servidores. Los servidores virtuales o dedicados en Linux proporcionan, por lo general, un servidor SSH que espera la conexión de un cliente. En un hosting web, en cambio, depende del proveedor si permite a sus clientes el uso de SSH. Como cliente sirve el comando ssh en Linux o aplicaciones de código abierto como PuTTY en Microsoft Windows. Tras establecer la conexión, basta con un único comando para exportar una base de datos:
mysqldump -u User -p Passwort Datenbank > Dateiname.sqlEs importante en este caso que se trate del usuario y la contraseña del servidor de bases de datos, no del inicio de sesión habitual. Con la opción - databases también se pueden exportar varias bases de datos simultáneamente:
mysqldump -u User -p Passwort - databases Datenbank1 Datenbank2 > Dateiname.sql
Quien utiliza un VPS o un Servidor Dedicado propio también puede exportar todas las bases de datos a la vez:
mysqldump -u root -p Passwort - all-databases > Dateiname.sqlPara la importación basta con invertir el operador de redirección que dirige la salida. En el primer caso la redirige al archivo Dateiname.sql; en el segundo apunta al comando, lo lee desde el archivo y pasa los datos a mysqldump, de modo que el comando para importar es casi idéntico:
mysqldump -u User -p Passwort Datenbank < Dateiname.sqlEn la práctica, un ejemplo de exportación o importación sería el siguiente:
mysqldump -u wp_domain -p 123456789 wp_data > Dateiname.sql¿Cómo exportar bases de datos a través de phpMyAdmin y Adminer?
Sowohl phpMyAdmin y Adminer ofrecen una opción para exportar e importar bases de datos directamente desde la interfaz web. En phpMyAdmin se encuentra, tras el inicio de sesión, como un elemento de menú directo a la derecha de las cuentas de usuario y a la izquierda de los ajustes. El programa permite exportar e importar en diversos formatos, además de la sintaxis SQL, también LaTeX, CSV, PDF, PHP Array o Microsoft Word 2000. Para la mayoría de usuarios suele ser suficiente seleccionar los ajustes rápidos con opciones mínimas. En ese caso la selección se limita al formato de la base de datos —aquí debe elegirse SQL, que permite importar posteriormente en cualquier servidor con soporte SQL—. Las opciones avanzadas son en general poco relevantes para usuarios normales; la única excepción es la salida u Output. Aquí, por ejemplo, se puede cambiar la codificación de caracteres del estándar UTF-8 o comprimir automáticamente el archivo mediante ZIP o GZIP para reducir significativamente el tamaño de bases de datos voluminosas.
Al igual que phpMyAdmin, Adminer pone a disposición, tras el inicio de sesión, opciones para importar y exportar directamente en su página principal; en la interfaz estándar se encuentran en el lado izquierdo, justo debajo del título Adminer y de un campo desplegable para la selección de la base de datos. En la elección de opciones la herramienta es algo más limitada que phpMyAdmin, pero ofrece todas las funcionalidades relevantes. Las diferencias principales son que Adminer soporta únicamente tres formatos distintos —SQL, CSV y TSV— y que como compresión solo ofrece GZIP.
Ambos programas permiten igualmente importar bases de datos de forma sencilla. Cabe destacar que el tamaño del archivo puede estar limitado por PHP. Existen distintas formas de sortear este límite: por ejemplo, aumentando el límite de subida de PHP de forma global o localmente en un .htaccess, o subiendo el archivo al servidor mediante FTP.
Foto: Gerd Altmann en Pixabay
Escribe un comentario
- PHP
- Datenbanken
Etiquetas de este artículo
Más proveedores de hosting
Más artículos interesantes
MariaDB vs MySQL: similitudes, diferencias y compatibilidad
MariaDB vs MySQL: similitudes, diferencias y compatibilidad. Aclaramos y analizamos las similitudes y diferencias.