Crear, respaldar o restaurar una base de datos MySQL

De Apuntes
Saltar a: navegación, buscar

Una base de datos MySQL se puede gestionar con herramientas gráficas o con el cliente de línea de comandos que usualmente viene con el gestor. A continuación se indica de forma general como realizar tareas básicas, sin embargo es importante consultar la documentación oficial del sistema con el que se esté trabajando.

Crear

Con el intérprete de comandos

Ingresar con el usuario administrador de MySQL:

$ mysql -u root -p

una vez ingresada la contraseña de root, se abre una consola de MySQL.

Crear una nueva base de datos:

mysql> CREATE DATABASE exampledb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Crear un usuario y asignarle permisos sobre la base de datos recién creada:

mysql> GRANT ALL PRIVILEGES ON exampledb.* TO 'usuario'@'localhost' IDENTIFIED BY 'clave';

Para salir de la consola MySQL

mysql> \q

Respaldar

Con el intérprete de comandos

Para respaldar una base de datos utilice el comando mysqldump:

$ mysqldump -u user -p exampledb > respaldo_exampledb.sql

Restaurar

Con el intérprete de comandos

Para restaurar una base de datos, es necesario borrar las tablas de la base de datos anterior. Una vez limpia la base de datos, se restaura desde un respaldo.

Lo más sencillo es eliminar toda la base de datos:

mysql> DROP DATABASE exampledb;

y crearla de nuevo como se describe en la sección Crear.

Si su hosting no le permite eliminar y crear bases de datos, como es el caso de web2.ucr.ac.cr, puede utilizar un script que borre automáticamente todas las tablas, esto le evitará tener que borrarlas una a una.

Para ello utilice su editor favorito (gedit, nano, vi, ...) y cree un archivo, en formato de texto plano, llamado droptables.sh, con el siguiente contenido:

USER=usuario
DATABASE_NAME=nombre de base de datos
PASS=clave

mysql -u$USER -p"${PASS}" -Nse 'show tables' $DATABASE_NAME | while read table; do mysql -u$USER -p"${PASS}" -e "drop table $table" $DATABASE_NAME; done

Sustituya usuario, nombre de base de datos y clave por los valores respectivos.

Añada permisos de ejecución al script:

$ chmod +x droptables.sh

Ejecute el script:

./droptables.sh

Una vez que tenga una base de datos vacía, sin tablas, restaure el respaldo:

mysql -u usuario -p exampledb < respaldo.sql