Tutorial

Cómo instalar MariaDB en Ubuntu 18.04

UbuntuMySQLMariaDBUbuntu 18.04Databases

Introducción

MariaDB es un sistema de administración de bases de datos de código abierto, que comúnmente se usa como alternativa para la parte de MySQL de la popular pila LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Se diseñó como un reemplazo a medida de MySQL.

La versión corta de esta guía de instalación consta de estos tres pasos:

  • Actualizar el índice de paquetes usando apt
  • Instalar el paquete de mariadb-server usando apt. El paquete también incluye herramientas relacionadas para interactuar con MariaDB.
  • Ejecutar la secuencia de comandos de seguridad de mysql_secure_installation incluida para restringir el acceso al servidor
  • sudo apt update
  • sudo apt install mariadb-server
  • sudo mysql_secure_installation

En este tutorial, se explicará la forma de instalar MariaDB en un servidor de Ubuntu 18.04 y verificar que funcione y cuente con una configuración inicial segura.

Requisitos previos

Para este tutorial, necesitará lo siguiente:

Paso 1: Instalar MariaDB

En Ubuntu 18.04, la versión 10.1 de MariaDB se incluye en los repositorios de paquetes de APT de manera predeterminada.

Para instalarla, actualice el índice de paquetes en su servidor con apt:

  • sudo apt update

A continuación, instale el paquete:

  • sudo apt install mariadb-server

Estos comandos instalarán MariaDB, pero no le solicitará establecer una contraseña ni realizar otros cambios de configuración. Debido a que la configuración predeterminada hace que la instalación de MariaDB no sea segura, usaremos una secuencia de comandos que el paquete de mariadb-server proporciona para restringir el acceso al servidor y eliminar cuentas no utilizadas.

Paso 2: Configurar MariaDB

En las nuevas instalaciones de MariaDB, el siguiente paso es ejecutar la secuencia de comandos de seguridad incluida. Esta secuencia de comandos cambia algunas de las opciones predeterminadas que son menos seguras. La usaremos para bloquear las conexiones de root remotas y eliminar los usuarios de la base de datos no utilizados.

Ejecute la secuencia de comandos de seguridad:

  • sudo mysql_secure_installation

Con esto, verá una serie de solicitudes mediante las cuales podrá realizar cambios en las opciones de seguridad de su instalación de MariaDB. En la primera solicitud se pedirá que introduzca la contraseña root de la base de datos actual. Debido a que no configuramos una aún, pulse ENTER para indicar “none” (ninguna).

En la siguiente solicitud se pregunta si desea configurar una contraseña root de la base de datos. Escriba N y pulse ENTER. En Ubuntu, la cuenta root para MariaDB está estrechamente vinculada al mantenimiento del sistema automatizado. Por lo tanto, no deberíamos cambiar los métodos de autenticación configurados para esa cuenta. Hacer esto permitiría que una actualización de paquetes dañara el sistema de bases de datos eliminando el acceso a la cuenta administrativa. Más tarde, se explicará la manera configurar de forma opcional una cuenta administrativa adicional para el acceso con contraseña si la autenticación del socket no es apropiada para su caso de uso.

Desde allí, puede pulsar Y y luego ENTER para aceptar los valores predeterminados para todas las preguntas siguientes. Con esto, se eliminarán algunos usuarios anónimos y la base de datos de prueba, se deshabilitarán las credenciales de inicio de sesión remoto de root y se cargarán estas nuevas reglas para que MariaDB aplique de inmediato los cambios que realizó.

Paso 3: Ajustar la autenticación y los privilegios de usuario (opcional)

En sistemas con Ubuntu y MariaDB 10.1, el usuario root de MariaDB está configurado para autenticarse usando el complemento unix_socket de manera predeterminada en lugar de una contraseña. Esto proporciona una mayor seguridad y utilidad en muchos casos, pero también puede generar complicaciones cuando necesita otorgar derechos administrativos a un programa externo (por ejemplo, phpMyAdmin).

Debido a que el servidor utiliza la cuenta root para tareas como la rotación de registros y el inicio y la deteneción del servidor, es mejor no cambiar los detalles de autenticación root de la cuenta. La modificación de las credenciales del archivo de configuración en /etc/mysql/debian.cnf puede funcionar al principio, pero las actualizaciones de paquetes pueden sobrescribir esos cambios. En vez de modificar la cuenta root, los mantenedores de paquetes recomiendan crear una cuenta administrativa independiente para el acceso basado en contraseña.

Para hacerlo, crearemos una cuenta nueva llamada administrador con las mismas capacidades que la cuenta root, pero la configuremos para la autenticación de contraseña Para hacer esto, abra la instrucción de MariaDB desde su terminal:

  • sudo mysql

Ahora, crearemos un nuevo usuario con privilegios root y acceso basado en contraseña. Cambie el nombre de usuario y la contraseña según sus preferencias:

  • GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Vacíe los privilegios para garantizar que se guarden y estén disponibles en la sesión actual:

  • FLUSH PRIVILEGES;

Después de esto, cierre el shell de MariaDB:

  • exit

Por último, probaremos la instalación de MariaDB.

Paso 4: Probar MariaDB

Cuando se instale desde los repositorios predeterminados, MariaDB debería ejecutarse automáticamente. Para probar esto, compruebe su estado.

  • sudo systemctl status mariadb

Recibirá un resultado que es similar al siguiente:

Output
● mariadb.service - MariaDB 10.1.44 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 22559 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 1152) CGroup: /system.slice/mariadb.service └─22559 /usr/sbin/mysqld Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES' Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts. Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Si MariaDB no funciona, puede iniciarla con el comando sudo systemctl start mariadb.

Como comprobación adicional, puede intentar establecer conexión con la base de datos usando la herramienta mysqladmin, que es un cliente que le permite ejecutar comandos administrativos. Por ejemplo, este comando indica que se establezca conexión con MariaDB como root y devolver la versión usando el socket de Unix:

  • sudo mysqladmin version

Debería recibir un resultado similar a este:

Output
mysqladmin Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.1.44-MariaDB-0ubuntu0.18.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 10 min 9 sec Threads: 1 Questions: 445 Slow queries: 0 Opens: 167 Flush tables: 1 Open tables: 30 Queries per second avg: 0.730

Si configuró un usuario administrativo independiente con la autenticación de contraseña, puede realizar la misma operación escribiendo lo siguiente:

  • mysqladmin -u admin -p version

Esto significa que MariaDB está activo y que su usuario puede autenticarse correctamente.

Conclusión

En esta guía, instaló MariaDB para que actuase como servidor SQL. Durante el proceso de instalación que también protegió el servidor. De manera opcional, también creó un usuario administrativo independiente.

Ahora que tiene un servidor de MariaDB activo y seguro, aquí se ofrecen algunos ejemplos de los siguientes pasos que puede completar para trabajar con el servidor:

También puede incorporar MariaDB a una pila de aplicaciones más grande:

Creative Commons License