De MySQL a Maria DB: Guía rápida de migración para Debian

Cuando un producto que funciona y vale la pena, y que por demás es de código abierto, cae en manos de una empresa cuyo objetivo no es otro que hacer más y más dinero, el mundo tiembla.

Ya pasó con OpenOffice en su momento y ahora le toca el turno a MySQL. Teniendo a Oracle detrás nadie sabe lo que puede pasar y es bueno saber que existen alternativas y específicamente la mejor de todas es Maria DB.

Citando a Wikipedia:

MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL. Es desarrollado por Michael Widenius (fundador de MySQL) y la comunidad de desarrolladores de software libre. Introduce dos motores de almacenamiento nuevos, uno llamado Aria -que reemplaza con ventajas a MyISAM- y otro llamado XtraDB -en sustitución de InnoDB. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, APIs y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.

Así que sin más preámbulos veamos como pasar de MySQL a Maria DB.

Es importante saber que para que esto funcione al 100%, debemos tener la misma versión de MySQL (5.5) y Maria DB (5.5)

Migrando de MySQL a Maria DB

Este proceso no se puede hacer en caliente. O sea, tenemos que parar por un instante nuestros servicios y procesos que estén ejecutando MySQL.

# service stop apache2
# service stop nginx
# service stop mysql

En este caso detenemos Apache o NGinx en dependencia del cual estemos usando, y como es lógico también paramos a MySQL.

Posteriormente hacemos un backup de nuestra base de datos MySQL:

# mysqldump -u root -p --all-databases > mysqlbackup.sql

Y eliminamos todos los paquetes relacionados con MySQL:

# aptitude remove mysql-server-core-5.5 mysql-server-5.5 mysql-server mysql-common mysql-client-5.5 libmysqlclient18

Ahora tenemos que instalar Maria DB. Por desgracia, todavía no se encuentra en los repositorios de Debian, pero podemos instalarlo usando sus propios repositorios. Para otras distribuciones, pueden ver las instrucciones acá.

Añadimos a nuestro fichero /etc/sources.list lo siguiente:

# MariaDB 5.5 repository list - created 2013-08-02 13:48 UTC
# http://mariadb.org/mariadb/repositories/
deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian wheezy main
deb-src http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian wheezy main

Luego actualizamos e instalamos Maria DB:

sudo aptitude update
sudo apt-get install mariadb-server

Iniciamos Maria DB (si no lo hizo automáticamente) y comprobamos que esté funcionando:

# mysql -u root -p -Be 'show databases'
Enter password:

Algunas configuraciones han cambiado considerablemente entre MySQL y MariaDB, sin embargo, es muy fácil de trabajar. Casi todo lo que cambió tiene que ver con los mecanismos que se han sustituido, por ejemplo, la replicación. Solo debemos copias las opciones de optimización de rendimiento que teníamos en el fichero my.cnf de MySQL, y reconfigurar el resto a mano.

Por ejemplo, estos datos:

bind-address = 127.0.0.1 
max_connections = 10 
connect_timeout = 30 
wait_timeout = 600 
max_allowed_packet = 16M 
thread_cache_size = 256 
O sort = 16M 
bulk_insert_buffer_size = 16M 
tmp_table_size = 64M 
max_heap_table_size = 64M

Hacemos los cambios necesarios y reiniciamos Maria DB.

# service mysql restart
Stopping MariaDB database server: mysqld.
Starting MariaDB database server: mysqld . . .
Checking for corrupt, not cleanly closed and upgrade needing tables..
# mysql -u root -p -Be 'show databases'
Enter password:

Si, Maria DB mantiene el mismo nombre mysql para reiniciar el servicio, en vista de mantener mayor compatibilidad. Si todo está bien, pues iniciamos el resto de los servicios:

# service apache2 start
# service nginx start

Y listo. Si queremos volver atrás (cosa que no recomiendo), solo tenemos que ejecutar:

# service mysql stop
# apt-get remove mariadb-server-5.5 mariadb-common mariadb-client-5.5 libmariadbclient18
# apt-get install mysql-server

 

Fuente: BeginLinux | desdelinux

¿Quién está en línea?

Hay 25478 invitados y ningún miembro en línea