Hay dos métodos para hacer copias de seguridad. Yo explicaré los dos, aunque el recomendable es el segundo, que hace uso del comando mysqldump.
Método 1: Copiar archivos de la base de datos
Este método es a pelo, es decir, coger directamente los archivos dentro de la jerarquía de directorios de mysql donde están definidas las bases de datos. Este método no se recomienda porque pueden haber diferencias de formatos entre distintas versiones de MySQL, si lo que pretendemos es traspasar la base de datos de una máquina a otra. En Windows, la ruta donde se guardan las bases de datos es parecida a la siguiente:
Donde X completa la versión que tengamos de MySQL. En sistemas Linux y Mac OS x se encuentra en /var/lib/mysql/
Método 2: Uso del comando mysqldump
El segundo método, y el recomendado es hacer uso de comando mysqldump. Este comando tiene múltiples opciones. Veremos aquí sólo algunas de ellas. Lo necesario para sobrevivir. Por supuesto, siempre queda la documentación.
| $ man mysqldump |
La ventaja de usar este comando, es que no depende de la versión y funciona igual en cualquier máquina. La sintaxis típica para este comando es:
| $ mysqldump -u usuario -p objeto_a_respaldar |
El objeto a respaldar puede ser toda la base de datos, una base de datos en concreta, una tabla o un conjunto de tablas. Para verlo mejor, hacemos una ejemplos. Suponer que tenemos una base de datos test y una tabla dentro de esa base de datos que se llama cliente.
Respaldo de base de datos: Vamos a copiar la base de datos test:
| $ mysqldump -u root -p test > test.bk.sql |
Respaldo de una tabla: Vamos a respaldar la tabla cliente.
| $mysqldump -u root -p test cliente > cliente.bk.sql |
Respaldo de toda la base de datos:
| $ mysqldump -u root -p --all-databases > database.bk.sql |
Restaurar la base de datos
Si queremos recuperar los datos, es muy sencillo. Si hemos usado el método de coger directamente el archivo, es llevarlo nuevamente a su sitio correspondiente. Si hemos usado el comando mysqldump queda como sigue.
Si hemos hecho copia de toda la base de datos (--all-databases) la recuperación queda:
| $ mysql -u root -p < databases.bk.sql |
Si hemos hecho una copia selectiva de alguna base de datos, hay que añadirle la opción -D.
| $ mysql -u root -p -D test < test.bk.sql |

0 comentarios:
Publicar un comentario en la entrada