Backup MySQL por comandos

Este es un manual con la intención de tener todos los comandos más comunes de manejo de bases y tablas de MySQL reunidos en un solo documento, que si es necesario se actualizará y crecerá convenientemente al uso que se necesite.

Backup de Base de datos a archivo:

shell> mysqldump -u root -p databse > backup-file.sql

Recuperar Base de datos de archivo:

shell> mysql -u root -p database < backup-file.sql

Si ponemos en los comandos de mysql (mysql, mysqldump, mysqladmin…) el parámetro -p indicamos que le debemos pasar la contraseña de usuario de mysql para ejecutar el comando. Si adjunto junto a -p la contraseña (-ppassword_de_mysql) en el mismo comando no nos preguntará la contraseña al ejecutarlo:

shell> mysqldump -u root -ppassword databse > backup-file.sql

Exportar todas las bases de datos a un solo archivo .sql:

shell> mysql -u root -ppassword -e "flush tables;"
shell> mysqldump -u root -ppassword -A > backup_mysql.sql

la primera linea libera la caché tablas de mysql. Con la segunda volcamos todas las bases al archivo backup_mysq.sql

Backup de una tabla a un archivo:

shell> mysqldump -u root -ppassword nombre_db nombre_tabla > backup-file.sql

Añadir DropTable para que previamente borre la tabla y luego la inserte:

shell> mysqldump -u root -ppassword --add-drop-table nombre_db nombre_tabla > backup-file.sql

-u -> usuario de la base de datos
-p -> parámetro que solicita la contraseña del usuario de la base de datos.
password -> contraseña del usuario, el texto va todo seguido junto al parámetro -p

Recuperar tabla de un archivo:

shell> mysql -u root -ppassword nombre_db < backup-file.sql

Le pasamos el nombre de la base de datos donde va a meter la tabla. Si backup-file.sql no contiene la sentencia de borrar la tabla (drop table) antes de insertar los registros, devolverá un error si existe ya la tabla en la base de datos.