Cambiar el nombre de una base de datos en MySQL

Buenas Amigos. Con el tiempo, parece necesario cambiar el nombre de una base de datos en MySQL. Para ese propósito, solíamos aplicar un comando simple RENAME DATABASE que existía en versiones anteriores de MySQL. Sin embargo, dejó de estar disponible en las versiones más nuevas porque presentaba riesgos. La razón fue que la consulta RENAME DATABASE podría resultar en la pérdida del contenido esencial de la base de datos, lo que claramente no era deseable.

Cambiar el nombre de una base de datos en MySQL

Método para cambiar el nombre de una base de datos en MySQL

Hay una forma de realizar esta tarea con bastante facilidad. De hecho, MySQL versión 5.5 (y posterior) tiene InnoDB Storage Engine como el motor predeterminado, lo que puede ser útil.

En pocas palabras, podemos aplicar el comando RENAME TABLE dentro de un indicador de MySQL para alterar el nombre de la base de datos de una tabla en particular sin cambiar el nombre de la tabla. Pero para hacerlo, primero necesitamos crear una nueva base de datos con el siguiente comando de shell mysqladmin:

$ mysqladmin -u username -p"password" create newDbname

Ahora que hemos creado una base de datos vacía, necesitamos mover las tablas una por una desde la base de datos anterior a la base de datos recién creada con el siguiente comando:

RENAME TABLE oldDbname.table TO newDbname.table;

Como puede ver, la consulta nos permite mover las tablas solo una a la vez, lo que no es muy práctico para grandes bases de datos. Además, el comando RENAME TABLE no funciona para vistas y activadores. En lugar de ejecutar la declaración mencionada anteriormente, tendríamos que eliminarlos y crearlos nuevamente.

Dumping Method

Otra forma de cambiar el nombre de una base de datos en MySQL sería usar el comando de shell mysqldump. De esta manera, podemos crear una copia volcada de la base de datos e importar todo el contenido de la base de datos a la nueva base de datos. Después de eso, podemos eliminar la base de datos anterior si es necesario.

$ mysqldump -u username -p"password" -R oldDbname > oldDbname.sql

Seguidamente, necesitamos usar el comando mencionado anteriormente para crear una nueva base de datos:

$ mysqladmin -u username -p"password" create newDbname

Finalmente, necesitamos importar el archivo de volcado creado en el primer paso a la nueva base de datos:

mysql -u username -p"password" newDbname < oldDbname.sql

¡¡Si necesitas ayuda con esta u otra operación, no dudes en contactar con nosotros!! ¡Hasta la próxima! Puedes ver más información sobre RENAME TABLE en MySQL: https://dev.mysql.com/doc/refman/5.7/en/rename-table.html

No dudes en apuntaros a nuestra newsletter mensual con un solo email al mes. Estarás atento de todas nuestras entradas.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn