Respaldar y restaurar una Base de Datos MySQL con línea de comandos y un acceso SSH.
La forma más rápida y segura de respaldar una Base de Datos en servidores LINUX sin que ésta se corrompa, sin que haya perdida de datos o errores de formato, sin afectar el rendimiento o la carga del servidor, y sin afectar las visitas a tu sitio web, es desde la línea de comandos usando una conexión SSH.
Para esto, es necesario:
- Tener acceso SSH al servidor (como ROOT o como USUARIO con los permisos necesarios).
- Un cliente SSH para conectarte.
Nota: Putty es un cliente SSH muy recomendable (click aquí para descargar putty), funciona en todas las plataformas Windows (incluso en Windows 7) y no requiere instalación.
Pasos a seguir:
- Conéctate vía SSH a tu servidor, si es usando Putty, aquí hay varios links donde se explica como: Conexión SSH con putty.
- Crear el direcorio respaldo en / (no en public_html) y cambiamos la ubicación a ese directorio:
Crear directorio: mkdir respaldo
Cambiar de directorio: cd respaldo - Respaldar la Base de datos con el siguiente comando:
mysqldump -u usuario_basedatos -ppassword nombre_basedatos > respaldo_basedatos.sql - Ahora ya tienen la Base de Datos respaldada, se puede comprimir el SQL con:
gzip -9 respaldo_basedatos.sql - Listo, ahora que tienen toda su Base de Datos comprimida en GZIP (se puede abrir con WinRAR), podrán descargarla por FTP y eliminarla del servidor una vez que la tengan en su PC
Nota: Notese que en el paso 3 el "-ppassword" va JUNTO, es decir, que la contraseña de la Base de Datos debe ir pegada a la instrucción -p.
Este proceso de respaldo, llevará desde unos cuantos segundos hasta un par de minutos dependiendo del tamaño de tu Base de Datos, simple y rápido.
Y si necesitan restaurar esa base de datos, sólo hacen lo siguiente:
- Subir el backup por FTP al directorio de respaldos
- Conexión por SSH al servidor y cambiar a la carpeta de respaldo con:
cd respaldo - Descomprimir y Restaurar la base de datos con el siguiente comando:
gzip -d respaldo_db.sql.gz
mysql -u usuario_db -ppassword -h localhost -D nombre_db < respaldo_db.sql
Nota: De ser necesario, cambiar localhost por el Host de MySQL en su servidor (usualmente no hace falta).
Un saludo a todos los Webmaster, y espero que les sea de utilidad.
Desde México, DASUMO
Deja un comentario

que util es este sitio con tutoriales, te lo agradezco.
Aquí está otro tutorial http://www.librosintinta.in/busca/mysql-manual/pdf/
Adios.
Pablo:
No se necesitan comillas, esas comillas entre el -p"password" no van, ni tampoco la comilla de inicio ni la final, por eso la sintaxis está mal… Además, debes especificar la extensión del archivo a guardar como: cualquiernombre.sql
Un saludo.
pasos simples, pero no me funciona
dejo el mensaje de error para ver si me puedes ayudar.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysqldump -u root -p”BdDALO2007″ joo_polyasfalt > /home/plopez/Datos-BD/pruebare’ at line 1
Gracias Marie, lo escencial nada más… Saludos
Usted es una persona muy inteligente!
Si que es útil slider0, así se evita dañar o la perdida/corrupción de datos de una DB, un saludo
Ta bueno muy util. :d
Saludoss..