¿Cómo cambiar el nombre de una base de datos MySQL?
El manual en línea de MySQL dice sobre el comando RENAME DATABASE (esta página de documentación ha sido eliminada por Oracle hace algún tiempo):
Esta declaración se agregó en MySQL 5.1.7 pero se descubrió que era peligrosa y se eliminó en MySQL 5.1.23.
Entonces, ¿cómo proceder? La razón: comenzamos con un nombre en clave para el proyecto y queremos que el nombre de la base de datos ahora refleje el nombre definitivo del proyecto.
Respuestas:
De esta publicación de blog de Ilan Hazan:
En MySQL no hay soporte para cambiar el nombre de la base de datos. Para cambiar el nombre de una base de datos MySQL, puede realizar una de las siguientes acciones:
Cree una nueva base de datos y cambie el nombre de todas las tablas de la base de datos anterior para que estén en la nueva base de datos:
En el shell de Linux, use mysqldump para hacer una copia de seguridad de la base de datos anterior, luego restaure la base de datos volcada con un nuevo nombre utilizando la utilidad MySQL. Finalmente, use el comando drop database para descartar la base de datos anterior. Esta opción puede funcionar mal para bases de datos grandes.
Escribir un script simple de Linux (mi solución favorita)
Si todas sus tablas son MyISAM, puede cambiar el nombre de la carpeta de la base de datos anterior:
fuente
SELECT CONCAT('olddb.', TABLE_NAME, ' TO newdb.', TABLE_NAME, ',') FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='olddb';
;MySQL apesta un poco por esto. La única solución sólida y confiable es usar
phpMyAdmin
.Login
-> clickScheme
-> clickOperations
-> buscarRename database to:
-> escribirNewName
> clickGo
.Tan sencillo como eso. Todos los permisos se transfieren.
fuente
Encontré una solución muy simple: apague MySQL, cambie el nombre del directorio de la base de datos y reinicie. ¡Eso es todo!
Es un poco peligroso si tiene código SQL o datos que se refieren al nombre anterior. Luego debe cambiar eso también antes de reiniciar la aplicación. Pero no necesitaba hacer eso, sino YMV.
Buscar en Google da algunos consejos como estos dos:
https://stackoverflow.com/questions/67093/how-do-i-quickly-rename-a-mysql-database-change-schema-name
http://www.delphifaq.com/faq/databases/mysql/f574.shtml
fuente
Tiendo a crear una nueva base de datos, y luego volcar las tablas de la anterior, en un archivo .sql (con mysqldump), editar el archivo, hacer algún tipo de
s/old_database/new_database/g
y luego volver a importarlo en el nuevo db.Probablemente no sea la mejor manera de hacerlo, pero funciona.
fuente
Si tiene la oportunidad de usar una herramienta de administración MySQL (por ejemplo, phpMyAdmin), puede cambiarle el nombre fácilmente a medida que crean la consulta por usted.
En phpMyAdmin también crean cada tabla e insertan los datos mediante "INSERTAR EN ... SELECCIONAR * DESDE ...". Entonces, al encadenar, copian los datos.
Si no puede hacer esto, recomendaría realizar un volcado y volver a importar el archivo sql a una nueva base de datos.
¡Buena suerte!
Saludos, Ben.
fuente
Usé el siguiente método para cambiar el nombre de la base de datos
haga una copia de seguridad del archivo utilizando mysqldump o cualquier herramienta de base de datos, por ejemplo, heidiSQL, administrador de mysql, etc.
Abra el archivo de copia de seguridad (por ejemplo, backupfile.sql) en algún editor de texto.
Busque y reemplace el nombre de la base de datos y guarde el archivo.
Restaurar el archivo sql editado
fuente