Saltar al contenido
KodigoSwift

Tutorial MariaDB – Instalación y Configuración

Tutorial MariaDB - Instalación y Configuración

En este Tutorial MariaDB hablaremos sobre el proceso de instalación y configuración que debemos aplicar a este gestor de bases de datos. Pero antes respondamos a una pregunta:

¿Por qué hablamos de MariaDB en un sitio enfocado en Swift y su entorno más cercano?

Pues hace poco terminé de colaborar en un proyecto donde la persistencia de la mayor parte de los datos reside en MariaDB y aunque un gran volumen de los usuarios van a interactuar con el sistema desde Windows yo me esforcé bastante en que la aplicación para macOS fuese nativa (gracias Carlos) a favor de la experiencia de usuario y una mejor integración con el sistema operativo.

Todo esto me motivó a escribir este artículo (y seguramente algunos otros) ya que muchas veces no se tiene muy presente (sobre todo en el mundo hispano) a macOS como plataforma de trabajo viable (quizás por los altos costos) y muchas veces tampoco el desarrollo nativo, algunos piensan que Swift solamente nos permite crear aplicaciones para las plataformas móviles de Apple y no, no es así y sobre eso hablaremos en un futuro tutorial donde veremos como integrar Swift con MariaDB. Por el momento vamos a centrarnos en como instalar y configurar correctamente MariaDB tanto en macOS como en Linux (Fedora / Ubuntu).

Vamos a incluir Linux ya que como todos saben Swift es un proyecto de Código Abierto y no es de uso exclusivo en plataformas Apple. Hace ya tiempo que podemos hacer uso de Swift en sistemas Linux tanto para crear aplicaciones que corran en la terminal como para crear backends que den soporte, entre otras necesidades, también a la persistencia de datos que pudiera requerir cierta aplicación, datos que pudiéramos almacenar en un sistema de bases de datos tan estable y bien mantenido como lo es MariaDB.

MariaDB

Las distribuciones Linux en su mayoría ya han adoptado MariaDB como remplazo a MySQL. Esta migración ha sido posible sin grandes dolores de cabeza ya que MariaDB es un fork directo de MySQL pero que a diferencia de este último se distribuye bajo la licencia GPL. Por ende MariaDB cuenta con una alta compatibilidad con MySQL, posee las mismas órdenes, interfaces, APIs y bibliotecas, siendo su objetivo poder cambiar un servidor por otro de manera directa. La primera versión de MariaDB fue lanzada en el año 2009 por su creador Michael Widenius (también creador de MySQL). Actualmente es mantenida por Widenius junto a los principios y amparo de La Fundación MariaDB (The MariaDB Foundation), la ayuda de los Sponsors y por toda una comunidad de desarrolladores, todos muy entusiastas, que se encuentran constantemente corrigiendo bugs y proponiendo mejoras.

Luego de la introducción histórica (Wikipedia)… A continuación se detallan los pasos para instalar el servidor de bases de datos MariaDB en macOS, Ubuntu y Fedora, respectivamente:

Nota: En este tutorial asumimos que el lector tiene conocimientos medianamente avanzados de administración de sistemas, al mismo tiempo recomendamos la lectura de nuestro artículo donde explicamos cómo configurar un entorno de desarrollo en macOS, en el cual también detallamos la instalación en macOS de comandos que aquí usaremos.

macOS:

Comenzamos por abrir iTerm y ejecutamos el comando:

…tal y como vemos en la siguiente imagen:

Brew Doctor

Si obtenemos la misma salida en pantalla significa que estamos listos para hacer uso del comando “brew“, es decir, que todo estaría bien para continuar con el próximo comando en el cual procedemos a la instalación de MariaDB:

En la siguiente imagen podemos ver la salida en pantalla que produce la ejecución del comando anterior.

brew install mariadb

A continuación vamos a activar la ejecución del servidor de bases de datos MariaDB al inicio del sistema. Luego de hecho esto cada vez que iniciemos nuestro macOS el servicio asociado a MariaDB comenzará su ejecución nuevamente sin necesidad de hacerlo manualmente. Tal y como nos informa la instalación de MariaDB ejecutamos el siguiente comando:

…al ejecutarlo obtenemos la salida en pantalla:

brew services start mariadb

Si en estos momentos ejecutamos el comando “netstat” en pos de visualizar los puertos abiertos:

…obtendremos una lista parecida a la siguiente:

netstat

Aquí podemos ver claramente en la primera línea que el servidor MariaDB, que por herencia / compatibilidad escucha en el mismo puerto que MySQL, se encuentra escuchando por todas las interfaces de nuestro Mac, tanto por IPv4 como por IPv6.

En caso de que te preguntes como desde el comando “brew” podemos ejecutar el servicio de MariaDB y establecerlo en el sistema de arranque, esto es debido a que brew se integra con launchctl y ejecuta mediante este las operaciones necesarias. De hecho si ejecutamos:

…podemos ver que MariaDB figura entre los servicios activos, donde la primera columna es el PID del proceso, la segunda columna es el estatus y la última es el nombre del servicio dentro de launchctl.

Ubuntu:

En el caso de Ubuntu lo primero que hacemos es:

…asegurarnos de tener actualizada la lista de paquetes que tenemos disponibles en los repositorios, para acto seguido verificar si hay alguna actualización:

…en mi caso no tengo ninguna actualización disponible pero quizás no ocurra lo mismo contigo así que no te sorprendas si contigo ocurre diferente, es normal y te aconsejo que actualices todo cuanto tengas disponible.

En este punto abrimos la terminal y a continuación ejecutamos:

…durante el proceso de instalación se nos mostrará una lista con todas las dependencias necesarias para que MariaDB pueda funcionar correctamente. Finalizada la instalación el script de post-instalación establecerá el servicio por defecto durante la carga del sistema y lo iniciará en ese instante.

Podemos verificar que el servicio está ejecutándose en segundo plano y en escucha de peticiones con el comando:

…en la segunda línea de puertos abiertos se encuentra mariadb que en Ubuntu aún figura como mysql.

En caso de que Ubuntu os informe que no encuentra el comando netstat:

…si esto les sucede hacemos lo siguiente:

…instalamos el paquete que contiene al comando “netstat“, luego de esto ya podemos usarlo como hemos explicado arriba.

Fedora:

En Fedora tal y como hicimos en Ubuntu primero actualizaremos la cache de paquetes con la que contamos en los repositorios, si el sistema se encuentra recién instalado y es la primera vez que vamos a interactuar con DNF ejecutamos el comando:

…ya sea en caso contrario o tras ejecutar el anterior comando proseguimos a verificar e instalar las actualizaciones disponibles:

Aunque pudimos haber especificado el parámetro “-y” para que la actualización fuese automática yo prefiero detenerme y leer / analizar los paquetes que se van a instalar y/o actualizar y por último especifico “y” para que el proceso continue.

Nota: Aunque no es necesario, he decidido mostrar la anterior salida en pantalla (que seguramente será distinta a la tuya) para que puedan ver por que prefiero Fedora sobre Ubuntu, entre otras cosas por el orden, la claridad con la que todo está dispuesto, la manera en la que se configura de la red a bajo nivel, el firewall, el sistema de arranque, por usar Gnome (aunque yo prefiero KDE, Qt fanboy) y un largo etcétera. Como dato curioso les comento que Fedora (tanto la versión desktop como server) podemos decir a groso modo que es el laboratorio de Red Hat, cuando ya versiones específicas de paquetes o branches han demostrado ser lo suficientemente estable, pasan a los repositorios de Red Hat y por ende también a su clon binario CentOS, sistemas donde corren muchos de los servidores de Internet, este sitio y posiblemente el tuyo también, de hecho CentOS es la opción preferida por la mayoría de las compañías de hosting.

Como quizás en Fedora el nombre de nuestro servidor de bases de datos MariaDB pudiera tener otro nombre primero buscamos con “dnf” las coincidencias:

La genial salida en pantalla de dnf nos informa de una coincidencia exacta la cual corresponde el meta-paquete de MariaDB, el cual instalará todas las dependencias necesarias, el servidor y todo lo necesario en un entorno genérico. Así que el siguiente comando es:

Exacto, en Fedora ya viene instalado, solamente tenemos que establecer el servicio para que inicie su ejecución al arranque del sistema y evidentemente iniciarlo. Esto lo hacemos con el comando:

…acabamos de establecer (o mejor dicho la herramienta / comando systemctl lo ha hecho por nosotros) nuestro servicio en el arranque del sistema, y ahora solamente lo iniciamos:

Quiero recalcar aquí que tal y como el comando “service” nos informa, la ejecución de “service mariadb start” es lo mismo que “systemctl start mariadb”.

Nota: Como la carpeta /bin esta en nuestro PATH de usuario no es necesario especificar el path absoluto del comando systemctl y cuando escribimos mariadb al final omitimos el “.service” ya que systemctl lo induce.

Si ahora ejecutamos:

…podemos constatar que nuestro servidor MariaDB se encuentra ejecutándose el en PID de proceso 2216 y se encuentra escuchando o esperando por conexiones en el puerto 3306 el clásico puerto de MySQL.

Asegurando la Instalación

No podríamos comenzar a trabajar sin antes establecer las políticas de seguridad mínimas en nuestra base de datos.

MariaDB al momento de ser instalada establece una configuración base y un usuario administrador nombrado “root“, sin password asociado. Este estado inicial no es para nada el deseado, por este motivo nos valemos de un comando que nos ayudará a corregir todo esto de una forma interactiva, su nombre es “mysql_secure_installation“, el cual ejecutamos sin parámetros bajo el usuario root del sistema o valiéndonos del comando “sudo” en el caso de las distribuciones Linux, en macOS como MariaDB se ejecuta bajo nuestro usuario no es necesario sudo:

En este ejemplo establecemos una contraseña para el usuario root, eliminamos todos los usuarios anónimos, se deshabilita el acceso remoto al servidor, también se elimina la base de datos “test“, por último se recargan las tablas de privilegios asegurando que todo los cambios tomen efecto. Hecho todo esto por parte de MariaDB ya está todo asegurado.

La ejecución del script anterior no la muestro para Ubuntu / Fedora ya que es idéntica a la de macOS y es relativamente extensa como para triplicar el contenido. Lo que si les muestro es como podemos verificar que la instalación y la configuración de seguridad que hemos aplicado funciona de manera correcta:

macOS:

Ubuntu:

…exacto, en Ubuntu tenemos que ejecutar el comando mysql haciendo uso de sudo:

Fedora:

En todas las salidas en pantalla podemos verificar las diferentes versiones y las bases de datos que se encuentran creadas por defecto, en otras palabras… todo ha salido como lo hemos planificado. A partir de aquí ya podemos comenzar a interactuar con MariaDB e integrar nuestro proyecto en Swift con esta base de datos local. Esto último lo veremos en próximos artículos.

Si tienes curiosidad o dudas sobre los beneficios de MariaDB sobre MySQL: las diferencias entre estos dos sistemas de bases de datos, el desempeño de cada uno, la compatibilidad y te gustaría conocer casos de uso pues te recomiendo los siguiente artículos (en inglés):

Espero que todo cuanto se ha dicho aquí, de una forma u otra le haya servido de aprendizaje, de referencia, que haya valido su preciado tiempo.

Este artículo, al igual que el resto, será revisado con cierta frecuencia en pos de mantener un contenido de calidad y actualizado.

Cualquier sugerencia, ya sea errores a corregir, información o ejemplos a añadir será, más que bienvenida, necesaria!

Entradas relacionadas

RECIBE CONTENIDO SIMILAR EN TU CORREO

RECIBE CONTENIDO SIMILAR EN TU CORREO

Suscríbete a nuestra lista de correo y mantente actualizado con las nuevas publicaciones.

Se ha suscrito correctamente!