Muchas veces las bases de datos de los proyectos son excesivamente grandes para exportarlos o importarlo desde el administrador de bases de datos MySQL o MariaDB por excelencia PHPMyAdmin, o necesitamos hacerlo directamente en el servidor. Por PHPMyAdmin es común que de errores de timeout o tamaño excesivo, por lo que no siempre es recomendable hacerlo así.
Para evitarlo, lo que podemos hacer es mediante línea de comandos importar y exportar la base de datos MySQL o MariaDB por comandos haciéndolo directamente en nuestro servidor local, conexión SSH o a través de conexión remota atacando la ip del servidor o dominio, podemos hacer una exportación o importación de la base de datos.
Para ello de forma muy sencilla podemos hacer lo que se llama un dump de la base de datos a través del comando mysqldump. Lo que no es más que la exportación de un archivo con todas las definiciones de la base de datos completa (tablas, relaciones, claves foráneas y primarias y los datos que contiene).
Importar base de datos local o por SSHmysql –u usuario_mysql -p nombre_bbdd < ruta_fichero_importación.sql
Exportar base de datos local o por SSHmysqldump –u usuario_mysql -p nombre_bbdd > fichero_exportación.sql
Importar base de datos remotamysql -h ipservidor_o_dominio –u usuario_mysql -p nombre_bbdd < ruta_fichero_importación.sql
Exportar base de datos remotamysqldump -h ipservidor_o_dominio
–u usuario_mysql -p nombre_bbdd > fichero_exportación.sql
Detallando un poco los comandos que he escrito anteriormente, lo que habría que tener en cuenta es que dando el argumento -p, nos pedirá el password para el usuario de la base de datos que hayamos especificado en el argumento -u (que obviamente tendrá que tener permisos sobre esa base de datos). El argumento -h nos permite especificar un host personalizado para lanzarlo sobre bases de datos remotas, si no lo especificamos, por defecto siempre es localhost y va a buscar la base de datos que haya local.
Con este sencillo comando podéis realizar backups de la base de datos completa mediante algún tipo de automatización o de forma manual en pocos minutos.
Hay bastantes más opciones dentro del mysqldump, como copiar bases de datos entre servidores y algunas más, pero eso lo dejamos para otro post.
Hasta aquí el artículo, es bastante sencillo y puede ser de gran utilidad.