
Aunque parezca muy raro, el administrador de mysql no trae ninguna funcionalidad que permita simplemente renombrar una base de datos, existe un comando para renombrar tablas, pero no bases de datos.
Entonces que opción nos queda?, bueno hay que recordar que los esquemas literalmente el sistema los ve como un directorio, de ser así entonces sería cuestión de renombrar el directorio y ya, pues bien esto es lo que hay que hacer. El asunto es que hay que buscar donde linux guarda los esquemas de mysql.
Dependiendo de la distribución , la colocación de los esquemas va a variar, sin embargo existe un archivo que nos va a indicar donde son almacenados, este archivo es:
my.cnf
La ubicación de este archivo en distribuciones como Debian y sus variaciones, esta generalmente en:
/etc/mysql
De todas formas sino sabemos donde esta lo buscamos con usando find
find / -name my.cnf
Una vez ubicado el archivo accedemos al mismo , y ubicamos la linea que diga
datadir = /var/lib/mysql
Datadir nos indica el lugar donde MySQL almacena todas las bases de datos, en mi distribución Ubuntu observamos que esta en /var/lib/mysql, nos cambiamos a ese directorio y dentro de él veremos que contiene todas las bases de datos que tenga nuestro MySQL, y ya aquí se hace lo más sencillo de todo el cuento, simplemente renombre el directorio al nombre que desee y listo.
No es necesario bajar el servicio de mysql ni reiniciarlo.
Te felicito gracias por resolverme un problema tenia 3 meses tratando de renombrar esa bases de datos.
ResponderEliminarHas probado con la instrucción de SQL de ALTER TABLE?
ResponderEliminarhey shakaran te equivocas porque alter table es para modificar tablas, pero no sirve para renombrar la base de datos entera yo me lei este post y es el unico que he conseguido en la red que me haya explicado como resolver el problema
ResponderEliminarSe agradece el aporte, lol @shakaran. Con respecto al cambiar de golpe el nombre de la DB desde el directorio de MySQL no es muy recomendado, en la versión 5.2.x provoca un conflicto en las tablas impidiendo que se creen respaldos ya que la base de datos estaba arriba cuando se hizo esto, por lo que las tablas estaban lock y se pierde la referencia con respecto al nombre de la DB (MySQL tendrá como referencia el nombre anterior, no el actual) por lo tanto si bien se puede cambiar, se pierden las referencias a las tablas de la DB.
ResponderEliminarEs más recomendable usar el comando RENAME DATABASE desde la terminal ya que es una operación que el mismo DBMS realiza y cambia las referencias a las tablas de la DB, ya que para eso está hecho :p
Actualización: el comando rename database fue removido luego de la versión 5.1 debido a que producía pérdida de datos por la misma razón de cambiar el nombre del directorio y fue reemplazado por ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME, como fuera de tema no entiendo por qué si me pide mi perfil no puedo editar mis propios comentarios....
ResponderEliminarGracias JuanC por tu información actualizada!. Saludos.
ResponderEliminar