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.