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:
apt
mariadb-server
usando apt
. El paquete también incluye herramientas relacionadas para interactuar con MariaDB.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.
Para este tutorial, necesitará lo siguiente:
sudo
y un firewall.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.
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ó.
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.
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:
Outputmysqladmin 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.
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:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.