¿Alguna vez has oído hablar sobre las bases de datos? Las bases de datos son, básicamente, contenedores de datos. Dicho datos son utilizados por distintos programas para mostrar al usuario determinada información.
Las bases de datos suelen ser utilizadas por medio de distintos tipos de software que reciben el nombre de manejadores de bases de datos o motores de bases de datos, entre los que encontramos por ejemplo a MySQL.
Existen en el mundo una enorme cantidad de programas de manejo de bases de datos distintos, y uno de los más populares de todos, o mejor dicho, el más popular de todos, es el ya mencionado MySQL. Hoy te vamos a hablar sobre este poderoso software que está presente en millones y millones de sitios web a través de Internet.
¿Qué es MySQL?
MySQL, como ya decíamos, es un manejador de bases de datos, pero no cualquier tipo de bases de datos, sino que se enfoca en las bases de datos de tipo relacional. ¿Y qué es eso exactamente?
Existen distintos tipos de bases de datos, las relacionales son uno de esos tipos, y MySQL es una de las herramientas más utilizadas para manejarlas. Los sistemas de gestión de bases de datos relacionales (RDBMS por sus siglas en inglés) son, explicado de forma sencilla, el software que se utilizan para manipular bases de datos.
MySQL en particular es un proyecto que nació en la década de los años noventa, viendo la luz por primera vez concretamente en 1995. Su popularidad no demoró en llegar, ya que rápidamente comenzó a ser adoptado por miles de usuarios en todo el mundo hasta convertirse en lo que sigue siendo al día de hoy: el sistema de gestión de bases de datos relacionales más utilizado a nivel mundial.
Escrito en los lenguajes de programación C y C++, al día de hoy MySQL es un software empleado por grandes compañías del sector de la tecnología e Internet que incluyen por ejemplo a Twitter, Facebook y YouTube, por mencionar algunos.
Si bien se trata de un software gratuito y que cualquier persona puede utilizar, actualmente es una propiedad de Oracle, y debido a esto hay quienes han dejado de utilizarlo en favor de forks no propietarios como MariaDB, un proyecto del creador original de MySQL que mantiene el espíritu libre que este último tuvo durante muchos años.
Su versión más reciente es MySQL 8.0, lanzado el año pasado. Se espera que la siguiente versión principal de esta herramienta sea lanzada aproximadamente en 2021, repitiéndose el ciclo de lanzamientos cada 3 años que mantiene desde 2010.
MySQL puede ser instalado rápidamente a partir de su código fuente, sin embargo es más común que la instalación se realice mediante programas especializados como gestores de paquetes, por ejemplo Yum en el caso de entornos CentOS.
A menudo MySQL es instalado además como parte de un sistema LAMP, el cual incluye una distro basada en Linux, Apache como servidor web, MySQL (o en algunos casos MariaDB) como gestor de bases de datos y PHP, Perl y Python como lenguajes de programación.
Características
Veamos cuáles son algunas de las principales características de MySQL que han hecho que se convierta en uno de los sistemas de bases de datos que más se utilizan en todo el mundo.
- Es gratuito: sin dudas un punto importantísimo. Si bien MySQL al día de hoy es un software propiedad de Oracle, esta empresa aún tiene disponible para el público general la versión gratuita de MySQL, la cual puede ser descargada por quien desee hacerlo. También se ofrece una versión de pago, aunque el uso de la misma es extremadamente reducido.
- Es multiplataforma: otra gran características de MySQL que ha permitido que sea tan popular es su compatibilidad con muchos sistemas operativos, ya que funciona perfectamente en Solaris, FreeBSD, Linux, Mac OS y Windows, así que prácticamente cualquier computadora puede correrlo.
- Interfaz gráfica: si bien MySQL puede ser usado mediante una consola en cualquier sistema operativo, a menudo se prefiere darle uso por medio de una interfaz gráfica, ya que las mismas suelen facilitar diversas tareas, ya que dadas las características de las bases de datos no siempre es sencillo operar en ellas. En el caso particular de MySQL se dispone de excelentes interfaces como por ejemplo MySQL Workbench, phpMyAdmin, DBeaver y Navicat, entre varios otros.
- Motores: MySQL es compatible con casi una docena de motores de almacenamiento, sin embargo por lo general la mayoría de las personas solo usan dos, los cuales son InnoDB y MyISAM, y cada tabla de cada base de datos puede ser configurada de forma individual para utilizar cualquier de ellos, es decir, en una misma bases de datos podemos encontrar varios motores de almacenamiento distinto.
- Respaldos: por defecto MySQL incluye un sistema de respaldo de bases de datos que se conoce como mysqldump. Esta herramienta es utilizada para crear una copia comprimida de una base de datos, y posteriormente dicha copia puede ser utilizada para volver a crear la base de datos en cuestión en caso de que la misma tenga algún problema, pérdida de datos, etc.
- Mantenimiento y reparación: otro importante programa que MySQL incluye recibe el nombre de mysqlcheck. Este software se utiliza principalmente en tareas de chequeo y reparaciones de bases de datos, e incluso se puede usar para realizar optimizaciones automáticamente en algunos casos.
- Arquitectura multihilo: gracias a su arquitectura multihilo, MySQL nos brinda la posibilidad de que varios usuarios puedan acceder a los datos almacenados de forma simultánea. Si esto no fuera posible no hay duda que este gestor no sería ni la décima parte de lo popular que es hoy en día.
- Privilegios: para acceder a las bases de datos y escribir, ver, borrar o modificar el contenido de las mismas se requiere de ciertos privilegios. En MySQL podemos crear usuarios y darle los privilegios que deseemos según las tareas que los mismos necesiten ejecutar dentro de las bases de datos.
- Replicación: MySQL puede ser montado en paralelo junto a otro sistema similar para generar una replicación de bases de datos, ya sea mediante un modelo master-slave o bien mediante el modelo master-master. La replicación de MySQL básicamente consiste en montar dos instancias de MySQL, cada una en servidores distintos, y generar una replicación entre ambos sistemas de forma que ambos cuenten con los mismos datos y se genere un entorno de alta disponibilidad o balanceo.
Ventajas y Desventajas
MySQL es un software excelente, aunque obviamente no todo es color de rosas. Así como usarlo tiene algunas ventajas, también nos podemos topar con ciertas desventajas.
Si hablamos primero de lo bueno, podemos enumerar algunas de sus características previamente mencionadas, como por ejemplo el hecho de que es un sistema gratuito y multiplataforma, pero a eso también debemos sumarle que se trata de una herramienta que requiere de muy pocos recursos a nivel de hardware para echarla a andar.
MySQL es además un software fácil de instalar y también fácil de configurar, acciones que se pueden completar incluso en menos de 5 minutos si sabemos lo que estamos haciendo. También es muy seguro y nos brinda un buen rendimiento si manejamos volúmenes de datos que sean medianos o pequeños.
Otra de sus ventajas principales es el rendimiento, sobre todo si ejecutamos consultas sencillas: en ese ámbito MySQL es realmente estupendo ya que nos devolverá un resultado muy rápidamente, y gracias a su estructura tiende a ser extremadamente estable, es muy extraño que una base de datos de MySQL se rompa o contenga datos corruptos. Puede pasar por supuesto, pero se trata de un evento para nada frecuente.
Viendo las cosas desde otro lado, el de las desventajas, el principal problema al cual MySQL se enfrenta es a los altos volúmenes de datos, sobre todo si se realiza gran cantidad de escritura en sus tablas. En sistemas con mucho tráfico esto puede volverse un gran problema, razón por la cual se recomienda en esos casos el uso de sistemas como PostgreSQL, que están mejor adaptados para manejar grandes cantidades de datos.
Además de eso, otro gran problema de MySQL con el cual se topan a menudo los más novatos es que no es nada intuitivo, es decir, no es fácil darle uso si no sabemos lo que hacemos. Esto claro se puede remediar estudiando sobre este software, pero no deja de ser un aspecto bastante criticado de la herramienta.
Instalar MySQL en CentOS Linux
Como decíamos previamente, el proceso de instalación de MySQL es, en realidad, sencillo, de hecho existen distintas formas de instalarlo, ya que puede hacerse por ejemplo como parte de un sistema LAMP, también se puede hacer la instalación mediante su código fuente directamente o bien en el caso de que queramos algo más sencillo aún están los instaladores de paquetes.
En el caso particular de CentOS la mejor forma de instalar MySQL sin lugar a dudas es haciendo uso del gestor de paques Yum (o DNF en CentOS 8) que integra dicho sistema operativo. MySQL de hecho viene añadido por defecto en los repositorios, aunque si usamos la versión más reciente se instalará MariaDB en su lugar.
A los efectos, MariaDB es prácticamente lo mismo que MySQL, de hecho tiene mejor rendimiento, pero como estamos hablando de MySQL no podemos conformarnos con MariaDB, así que veremos el proceso de instalación de MySQL en CentOS.
Lo primero que tenemos que hacer es bajar el repo de MySQL Community, ya que como decíamos en el moderno CentOS 8 e incluso en CentOS 7 ya no es posible instalarlo desde los repositorios por defecto debido a que nos instalará MariaDB en su lugar. Así que primero instalamos el repositorio, asegúrate de estar conectado al SSH como root o bien utilizar un usuario con permisos de sudoer:
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm
Y a continuación ya podemos proceder con la instalación de MySQL:
yum install mysql-community-server
En CentOS 8 podemos reemplazar yum por dnf en el comando de arriba, es decir que quedaría así:
dnf install mysql-community-server
Y eso es todo, ahora ya tenemos la versión estable más reciente de MySQL instalada en nuestro servidor CentOS. Para iniciar el servicio de MySQL bastará con ejecutar lo siguiente:
service mysqld start
Instalar MySQL en Ubuntu Linux
El proceso de instalación de MySQL en servidores Ubuntu también es muy sencillo y relativamente parecido al que se utiliza para CentOS, ya que la instalación también se realiza mediante un gestor de paquetes, en este caso con el llamado apt.
Por supuesto el proceso tiene sus diferencias de un sistema operativo a otro, y en esta oportunidad vamos a ver cómo podemos instalarlo en Ubuntu 18.04, que es la versión estable más reciente de esta plataforma.
Al contrario que CentOS 8 y 7 que adoptan MariaDB en sus repositorios por defecto, en el caso de Ubuntu nos encontramos conque MySQL todavía forma parte de sus repos oficiales, es decir que no va a ser necesario instalar el repositorio de MySQL Community primero, así que mejor pasemos directo a la acción.
Como siempre, recuerda que para realizar este proceso necesario ser usuario root o bien tener un usuario sudo. Lo primero será actualizar el sistema de paquetes apt para que su índice esté al día:
apt update
A continuación ya podemos proceder con la instalación de MySQL:
apt install mysql-server
Listo, en un minuto deberíamos tener nuestro flamante MySQL instalado. Ahora solo falta echar a correr el servicio, lo cual hacemos de esta forma:
systemctl start mysql
Conclusión
Y de esta forma estamos llegando al final del artículo. ¿Qué impresiones nos ha dejado MySQL hasta el momento?
Como hemos podido ver, MySQL es un sistema de gestión de bases de datos relacionales, es más usado del mundo de hecho, y se caracteriza por ser gratuito, multiplataforma, es compatible con varias interfaces gráficas, tiene soporte para casi una docena de motores de almacenamiento e incluye funciones de respaldo, revisión de tablas, reparación, optimización y replicación.
MySQL es una herramienta que posee varios puntos a favor, aunque también algunos en contra, aunque estos son una minoría. Por otro lado su proceso de instalación es super sencillo, de hecho en entornos de servidores muy populares como lo son CentOS y Ubuntu es posible instalar y echar a correr MySQL con ejecutar solamente tres o cuatro comandos.