Como respaldar una base de datos de mysql por consola

Siempre es necesario tener un respaldo de nuestras bases de datos, pero que pasa cuando nuestras bases de datos estan tan pesadas que el phpMyAdmin se queda colgado :s. Para eso nos sirve mysqldump un comando que nos trae MySQL para hacer respaldos de nuestras bases de datos su sintaxis es la siguiente:

[quote]

mysqldump [OPTIONS] database [tables]
O mysqldump [OPTIONS] –databases [OPTIONS] DB1 [DB2 DB3...]
O mysqldump [OPTIONS] –all-databases [OPTIONS]

[/quote]

Algunos de sus parametros mas utilizados son los siguientes:

[quote]

-A, –all-databases Dump all the databases. This will be same as –databaseswith all databases selected.
–add-drop-database Add a ‘DROP DATABASE’ before each create.
–add-drop-table Add a ‘drop table’ before each create.
–add-locks Add locks around insert statements.
–allow-keywords Allow creation of column names that are keywords.
–create-options Include all MySQL specific create options.
-e, –extended-insert Allows utilization of the new, much faster INSERT syntax.
-p, –password[=name] Password to use when connecting to server. If password is not given it’s solicited on the tty.
-u, –user=name User for login if not current user.
[/quote]

Bien, ahora pongo un ejemplo de su uso:

[code lang="sql"]

#Respaldando una única base de datos

mysqldump -uroot -p --all --add-locks -e mibase > bkmibase.sql;

#Respaldar todas mis bases de datos

mysqldump -uroot -p --all --all-databases --add-locks -e > bkmisbases.sql;

[/code]

Ok, ya tenemos nuestro respaldo ahora como la importamos? pues bien para cargarlo existen varias formas aqui les presento una que me sirve bastate:

[code lang="sql"]

#Nos conectamos a mysql

mysql -uroot -p

use mibase;

source /path/to/mibase.sql;

[/code]

como comentario para importar tablas tipo innodb se recomienda agregar:

[code lang="sql"]

SET FOREIGN_KEY_CHECKS=0;

[/code]

Al inicio del archivo y:

[code lang="sql"]

SET FOREIGN_KEY_CHECKS=1;

[/code]

al final con el fin de no obtener errores.