jueves 30 de abril de 2009

Renombrar Bases de Datos MySQL en Linux

Por varias razones sucede , que en ocasiones debemos renombrar una base de datos completa, en mi caso el motivo fue que un aplicativo tenía el nombre de la base de datos que debía usarse en su código interno (hard-code) y la base de datos que se creo con mysql se hizo con otro nombre, es obvio que al final la aplicación y la base de datos nunca se iban a ver, entonces que hay que hacer? renombrar.

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.

3 comentarios:

Anónimo dijo...

Te felicito gracias por resolverme un problema tenia 3 meses tratando de renombrar esa bases de datos.

shakaran dijo...

Has probado con la instrucción de SQL de ALTER TABLE?

Javier Huila dijo...

hey 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

Publicar un comentario en la entrada