Importar & exportar bases de datos MySQL desde línea de comandos. Consola Linux

 

Mysqldump Consola Linux

Hoy os traigo un par de comandos que os van muy bien en el momento de realizar backups y restaurar los ficheros de datos .sql en vuestras bases de datos MySQL/MariaDB. Se trata de las sentencias en bash mysqldump & mysql

PhpMyAdmin es muy buena herramienta para administrar las bases de datos, pero muchas veces se queda un poco corta cuando realizamos importaciones o exportaciones de bases de datos MySQL/MariaDB muy grandes (errores de conexión, reconexiones para volver a enviar las bases de datos, duplicidad de registros, volver a empezar, ....).

Existe en Linux un par de comandos que funcionan muy bien y evitan los errores de conexión por estar demasiado tiempo esperando a que finalice la importación/exportación de las bases de datos MySQL/MariaDB.

Exportar base de datos MySQL de servidor externo a fichero local .sql:

mysqldump --column-statistics=0 -h NOMBRE_DE_SERVIDOR -u NOMBRE_USUARIO -p BASE_DE_DATOS > nombre_fichero_local.sql

Existe algún problema intentando leer algunos datos en según qué versiones, que se soluciona indicando a mysqldump que pase por alto la lectura de column-satistics tal y como se ve en el código, o, si es necesario, utilizar --no-tablespaces si os da el error "mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces".

Importar un fichero local .sql a nuestro servidor MySQL local:

 mysql -u NOMBRE_USUARIO --host NOMBRE_SERVIDOR -p BASE_DE_DATOS nombre_fichero_local.sql

Con la primera de las sentencias, tendremos exportada la base de datos que nos interese de nuestro servidor MySQL remoto a un fichero local .sql, y con la segunda podremos importar a nuestro servidor local MySQL el fichero antes exportado .sql. Así de fácil.

En ambas sentencias, se os preguntará por el password del usuario MySQL. Únicamente hace falta introducirlo cuando os lo pregunte y ya está. En la captura de pantalla superior, podréis apreciar el momento en que lo pide. Una facilitando el password erróneo, volviendo a ejecutar la sentencia, y posteriormente pasándole el password correcto y ejecutando la sentencia sin problemas.

Lo suyo sería ejecutar estos comandos directamente en el servidor, crear el fichero .sql comprimido en .zip o .gzip y luego proceder a la descarga. Si no tenemos acceso ssh al servidor (como sucede en muchísimos hostings compartidos), deberemos ejecutarlo en nuestra máquina local, lo que significa que pasará todo el fichero .sql por Internet. Es igualmente efectivo, pero más lento (porque pasa todo el fichero .sql entero por la red) y menos seguro (por no utilizar protocolo ssh. No he investigado sobre este tema de seguridad, pero seguro que podríamos encontrar algo. Este trabajo os lo dejo en vuestras manos).

Espero que os aproveche.

Comentarios

Artículos más populares

Ja es poden veure els programes de 'REDES' de TVE2 per internet

Clase en PHP para encender/apagar LED en Raspberry pi

Raspberry Pi. Encender/Apagar LED desde PHP. Acceso directo a los puertos GPIO ultrarápido.