jueves, 31 de enero de 2013

Cómo cambiar la ruta de mi base de datos MySQL

Ya hace algún tiempo que diseño web en Linux, no es más que por gusto porque la mayoría de las herramientas que acostumbro a usar están disponibles igual para Windows.

Yo uso NETBEANS como IDE (luego en otro post  les comento las ventajas que he visto en este IDE), además empleo como servidor local de pruebas XAMPP en Windows y LAMPP para Linux, ambas versiones del mismo pack.

El caso es que necesitaba hacer que las bases de datos de mis proyectos estuvieran igualmente disponibles para Windows como para Linux.

HOY LO LOGRÉ!!!!

De hecho, de esta forma también logre que la ubicación de mis bases de datos esté en un lugar independiente de las dos plataformas, de modo que a la hora de una reinstalación no pierdo nada ni tengo que estar exportando e importando nada.

PRIMERO EN WINDOWS
Tras la instalación de XAMPP, la ruta por defecto de las bases es c:\xampp\mysql\data, puede ser que si usas otra versión la ruta sea otra, pero en todos los casos la ruta estará indicada en el archivo my.ini.

PASO 1: Detener MySQL.
Normalmente se instalará junto con el XAMPP un panel de control, allí puedes detener el servicio MySQL. Otra forma de hacerlo es buscando el archivo xampp_stop que seguramente estará en la carpeta c:/xampp.

PASO 2: Crea una nueva carpeta para las bases de datos
Yo tengo mi disco particionado en tres, una partición para Windows y los programas, otra partición para Linux y otra, la más grande, para los archivos. Eso me permite tener independientes los datos.
Creas una carpeta en la partición de datos. En mi caso quedó en D:\mysql.

PASO 3: Cambiar la ruta de en my.ini
Este archivo se encuentra en c:\xampp\mysql\bin\my.ini, pero si no lo encuentras allí por ser tu versión distinta, simplemente usa el buscador de Windows.
En este archivo hay que modificar la línea que dice "datadir = c:\xampp\mysql\data" y sustituir la ruta por la de la carpeta recién creada. En mi caso quedó así: "datadir = d:\mysql".

PASO 4: Mudar los datos de lugar
Ahora se copian todos los archivos que instala por defecto el XAMPP de la carpeta c:\xampp\mysql\data a la nueva ubicación.

Listo! ya se pueden crear o importar las bases de datos. Verás que todo se guardará sin problema en la nueva ubicación. No olvides reiniciar el XAMPP ejecutando c:\xampp\xampp_start o desde el panel de control de XAMPP.

AHORA EN LINUX
Yo actualmente uso UBUNTU 12.10 Remix, pero hasta ahora en cualquiera de las versiones anteriores, al menos de Ubuntu, ha sido igual.

Toma en cuenta que debes procurar tener instalada la misma versión de XAMPP en Linux. Veamos como se hace en Linux:

PASO 1: Detener MySQL
En linux XAMPP se instala normalmente en /opt/lampp, así que para detener todo el servidor puede usar esta orden desde el terminal:
sudo /opt/lampp/lampp stop

PASO 2: Verificar que la partición se monte desde el arranque
En mi Ubuntu uso la herramienta de Discos para hacer que el disco D:\ (la partición NTFS donde tengo los archivos) se monte desde el inicio. Eso crea una carpeta en /mnt/ o en /media/ es importante que sea así, porque al iniciar el XAMPP en linux, los archivos de las bases de datos deben estar disponibles.


PASO 3: Crear enlaces simbólicos.
Es muy simple, lo primero es abrir el explorador de archivos como administrador, en el terminal:
sudo nautilus (si usas Nautilus, obviamente)



Luego simplemente entra en la carpeta donde están las bases de datos y arrastra la carpeta completa hasta /opt/var/mysql manteniendo pulsada la tecla ALT, esto te permitirá ver las opciones, de las cuales debes escoger "crear un link". Este mismo paso debe repetirse para todas las carpetas de tus bases de datos.

Importante: Hay carpetas y archivos en esa ubicación que NO nos interesan. Sólo hay que hacer enlaces simbólicos a las que corresponden a nuestras bases de datos.

Listo! reinicia el XAMPP desde el terminal:
sudo /opt/lampp/lampp start

Si todo está bien deberás poder acceder a tus bases de datos desde Linux y desde Windows de manera indiferente, y todos los cambios que hagas en un lado, los tendrás hechos en el otro.

Ahora a seguir con tus pruebas en ambos sistemas.

Espero que les sirva, espero también sus comentarios y contribuciones por si se me pasó algún detalle, así como las dudas relacionadas con el tema.