14 may 2013

Instalar MariaDB en Linux en 10 pasos

En los últimos días he estado considerando la migración desde MySQL a MariaDB, un sistema de gestión de bases de datos derivado de MySQL con licencia GPL. Ante todo la compatibilidad es total y las comparativas son más que prometedoras (otra, otra) pero sobre todo porque el tratamiento que ha hecho Oracle de MySQL deja mucho que desear y es cuestión de tiempo hasta que dejen morir el proyecto.

MariaDB es un fork de MySQL creado por el propio fundador de MySQL, Ulf Michael "Monty" Widenius tras la adquisición de Sun por parte de Oracle. Ultimamente ha decidido unir fuerzas con la base de datos SkySQL. SkySQL y Monty Program Ab se han fusionado en una única compañía, que tendrá por nombre SkySQL.

MariaDB en una base de datos Open Source interoperable e incorpota "NewSQL", término que se refiere a bases de datos SQL que tratan de tener el rendimiento de las bases de datos NoSQL pero que siguen contando con transacciones y mantienen las garantías ACID.

La última versión 10 de MariaDB aún se encuentra en etapa Alpha de prueba por lo que decidí utilizar la versión anterior y estable. Para comenzar la instalación lo primero que hice fue acceder a la descarga de MariaDB 5.5 para la última versión de Ubuntu.

Aquí comienzan los problemas porque la instalación varía considerablemente de una distribución a otra de Linux e incluso entre distintas versiones de la misma distribución: no es lo mismo instalar Maria en Debian o Ubuntu 10, 11, 12 o 13 e incluso para esta última versión no hay un procedimiento definido.

Luego de probar innumerable cantidad de alternativas sobre Ubuntu 12.04 LTS y 13.04, de seguir varios tutoriales con archivos .GZ y .DEB, finalmente (creo) que he llegado a una forma más o menos confiable de instalar MariaDB sobre estas versiones de Ubuntu. Seguramente los pasos no variarán demasiado sobre Debian.

Nota: se asume que se tiene permisos de "root" o bien se puede hacer con el "su".

1. Ante todo comenzamos con la instalación de Apache:

apt-get install apache2
/etc/init.d/apache2 restart

Si todo está bien, deberemos ver Apache encendido con el siguiente comando:

netstat -tap | grep apache2

Y el "http://localhost" debería responder con "It's Working".

2. Mismo procedimiento para MySQL Server. En teoría no debería ser necesario instalarlo antes de MariaDB pero no he logrado instalar este último sin este paso previo. Al instalar la base de datos, se debe prestar atención al usuario "root" y a la contraseña que se coloque, ya que se usará luego.

apt-get install mysql-server
/etc/init.d/mysql restart
netstat -tap | grep mysql

3. Adicionalmente (no es obligatorio), se puede hacer un fortalecimiento de la instalación de MySQL con:

mysql_secure_installation

4. A partir de ahora se comienza con la instalación de MariaDB propiamente dicha. Inicialmente se debe agregar los repositorios mediante los siguientes comandos:

add-apt-repository 'deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/ubuntu quantal main
add-apt-repository 'deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/ubuntu quantal main

También se puede modificar el archivo "/etc/apt/sources.list" manualmente.

5. Se debe agregar las llaves al repositorio para que los paquetes firmados de MariaDB sean correctamente verificados:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

6. En este momento es recomendable hacer una actualización y si es necesario reiniciar el sistema operativo:

apt-get update

Hasta aquí todo el procedimiento debería ser transparente y desarrollarse sin problemas.

Ahora, si se desea, se puede probar instalar desde el paso 8 directamente y, si se obtiene el siguiente error (conocido) de dependencias, volver al paso 7:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following packages have unmet dependencies:
libdbd-mysql-perl : Depends: libmysqlclient18 (>= 5.5.13-1) but it is not going to be installed
libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.30-mariadb1~quantal) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
7. Para evitar posibles incompatibilidad de paquetes y errores de dependencia con la libreria "libmariadbclient18" se hace un purge de módulos:

apt-get purge libmariadbclient18 mariadb-server mariadb-client-5.5 libmysqlclient18 mysql-common

8. Se instala MariaDB y sus dependencias. Se deberá utilizar el usuario "root" y la contraseña utilizada al instalar MySQL inicialmente.

apt-get install libmysqlclient18=5.5.30-mariadb1~quantal mysql-common=5.5.30-mariadb1~quantal mariadb-server mariadb-client

9. Si todo es correcto, la instalación debería terminar y ahora sería posible conectarse a la base de datos de MariaDB de la siguiente manera:

/etc/init.d/mysql restart
mysql -u root -p
Enter password: PASSWORD_UTILIZADA

Como se puede apreciar en la imagen, deberíamos ver la conexión de MariaDB:
10. Adicionalmente, si se desea también se puede instalar phpmyadmin para facilitar la administración de las bases de datos.

apt-get install phpmyadmin

La conexión y el uso de MariaDB no cambia nada con respecto a MySQL y si se tiene una aplicación funcionando, la misma debería seguir haciéndolo sin cambiar el código fuente de la misma.

Como mencioné, el procedimiento descripto ha funcionado correctamente en Ubuntu 12 y 13 y debería ser posible adaptarlo a otras distribuciones, siempre y cuando se solucione el problema de las dependencias con las librerías "libmysqlclient18".

Cristian de la Redacción de Segu-Info

Suscríbete a nuestro Boletín

1 comentario:

  1. INSTALE MARIADB EN FEDORA 20 Y ME GUSTARIA INSTALAR UN MANEJADOR DE BASE DE DATOS COMO EL QUERY-BROWSER O ALGO PARECIDO. [email protected],....

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!