Esta entrada la dedicamos a una pequeña guía sobre cómo instalar MariaDB en Debian 10 Buster paso a paso. Si necesitas un motor de bases de datos para tus propios desarrollos o para aplicaciones complejas, MariaDB es una de las mejores opciones que puedes instalar en tu servidor o VPS Debian. Al final de esta guía tendrás el servicio de bases de datos funcionando y configurado, con tu propio usuario administrador y acceso remoto.
Tabla de contenidos
- Antes de instalar MariaDB en Debian 10 Buster
- Cómo instalar MariaDB en Debian 10 Buster
- Cómo configurar MariaDB Server en Debian 10 Buster
- Configurar el acceso remoto a MariaDB en Debian 10 Buster
- Cómo conectar remotamente al servicio MariaDB en Debian 10
- Sincronizar la zona horaria de MariaDB con Debian 10
- Conclusión
Antes de instalar MariaDB en Debian 10 Buster
Si vas a seguir esta guía de instalación de MariaDB en Debian 10 debes cumplir estos mínimos requisitos:
- Un sistema Debian 10 actualizado.
- Conexión a Internet.
- Acceso a línea de comandos como root o un usuario con privilegios de sudo.
Con todo esto preparado, es hora de abrir nuestra terminal de comandos y ponernos manos a la obra.
Cómo instalar MariaDB en Debian 10 Buster
La forma clásica de instalar MariaDB en Debian 10 Buster era a través de los paquetes del propio repositorio de la distribución. Pero dado que la versión que ofrecen dichos repositorios pertenece a la rama 10.3, que ya está totalmente obsoleta y muchas aplicaciones requieren versiones más modernas, es preferible instalar MariaDB desde el repositorio oficial. Si te sirve la versión de la distribución puedes saltarte la siguiente sección.
Repositorio de MariaDB para Debian 10 Buster
Con el repositorio de MariaDB podremos instalar versiones más recientes y con más soporte, como pueden ser la 10.6, la 10.11, la 11.3 ó la 11.4.
Para tener disponible este repositorio, el primer paso es crear un archivo de configuración para el repositorio de MariaDB para Debian 10 Buster:
~$ sudo nano /etc/apt/sources.list.d/mariadb.sources
El contenido será este:
X-Repolib-Name: MariaDB Types: deb URIs: https://deb.mariadb.org/10.6/debian Suites: buster Components: main Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
Observa que la directiva «URIs» muestra una URL para la versión 10.6 de MariaDB. Si quieres otra versión sólo tienes que modificar la URL de la forma adecuada.
Una vez guardado el archivo, creamos un directorio para guardar la clave pública del repositorio de MariaDB:
~$ sudo mkdir /etc/apt/keyrings
Y descargamos dicha clave en el nuevo directorio:
~$ sudo wget -O /etc/apt/keyrings/mariadb-keyring.pgp https://mariadb.org/mariadb_release_signing_key.pgp
¡Listo!
Instalar MariaDB en Debian 10 Buster
Sea cual sea la versión de MariaDB que vayas a instalar en Debian 10 Buster, la primera acción es actualizar la información de las listas de paquetes de apt:
~$ sudo apt update
Opcionalmente, pero muy recomendable, se puede aprovechar para actualizar los paquetes ya instalados en el sistema:
~$ sudo apt upgrade -y
Ya está el sistema preparado para instalar nuevos paquetes procedentes de los repositorios. En esta ocasión el paquete que buscamos es mariadb-server, que corresponderá a la versión del repositorio de Debian 10 ó al de MariaDB (el nombre del paquete es el mismo):
~$ sudo apt install -y mariadb-server
Una vez descargados e instalados los paquetes y dependencias se crea el nuevo servicio mariadb.service. También puedes usar el nombre corto mariadb. Tras la instalación el servicio mariadb queda activado para arrancar junto con tu sistema Debian 10 y también se ha iniciado, como puedes comprobar con el comando systemctl status mariadb
:
Cómo instalar el cliente de MariaDB en Debian 10
Si te preguntas cómo instalar un cliente para conectar con el servicio MariaDB, puedes utilizar el cliente de consola mysql, ya que se instala como una de las dependencias del servidor.
Cómo configurar MariaDB Server en Debian 10 Buster
Archivos y directorios de configuración
Para realizar cualquier cambio de configuración del servicio MariaDB en Debian 10 encontrarás todos los archivos de configuración organizados en distintas carpetas bajo la ruta /etc/mysql/.
Autenticación del usuario root de MariaDB
Algo que debes tener muy en cuenta cuando instalas MariaDB en Debian 10 es que el usuario root de MariaDB utiliza el plugin de autenticación unix_socket, por lo que no tiene contraseña. Esto significa que sólo se puede conectar a MariaDB como superusuario root siendo root en Debian o un usuario que pueda utilizar sudo:
~$ sudo mysql
Sin embargo, lo habitual será crear los nuevos usuarios con el sistema habitual de autenticación por contraseña. Por ejemplo, es buena idea crear un usuario administrador alternativo, con contraseña e incluso con acceso remoto:
MariaDB [(none)]> grant all privileges on *.* to chacho identified by 'XXXXXXXX' with grant option;
Si por algún motivo deseas que root de MariaDB también use el sistema de autenticación por contraseña, es así de sencillo:
MariaDB [(none)]> alter user root@localhost identified by 'XXXXXXXX';
Se sale del cliente con el comando ‘exit‘:
MariaDB [(none)]> exit
Ahora cualquier usuario de Debian 10 Buster puede iniciar sesión como root en MariaDB si conoce su contraseña.
~$ mysql -u root -p Enter password: ... MariaDB [(none)]>
Si prefieres volver a la autenticación con sudo hazlo con este comando:
MariaDB [(none)]> alter user root@localhost identified via unix_socket;
Dependerá de las necesidades del sistema o de tus gustos personales usar un sistema de autenticación u otro para root.
Por último, si creaste un usuario con contraseña podrás comprobar que funciona iniciando sesión con él:
~$ mysql -u chacho -p
¿Es necesario el script mysql_secure_installation?
En cualquier instalación de MariaDB o MySQL se suele usar el script mysql_secure_installation para dejar el motor de bases de datos lo más seguro posible, pero en Debian 10 Buster no es necesario usarlo.
Las razones:
- El usuario root usa el plugin unix_socket por lo que este script aunque establezca una contraseña no la hará funcionar.
- Además, el usuario root sólo tiene acceso local, impidiendo su uso en conexiones remotas.
- No existen bases de datos de pruebas ni usuarios con acceso anónimo, por lo que no hay que eliminarlos.
Como siempre, las instalaciones de paquetes de Debian 10 suelen tener configuraciones por defecto bastante seguras, y MariaDB no iba a ser menos.
Configurar el acceso remoto a MariaDB en Debian 10 Buster
A diferencia de otros sistemas, en Debian 10 la instalación por defecto de MariaDB no permite conexiones remotas, solamente locales.
Sin embargo, si necesitas permitir acceso remoto al servicio MariaDB es fácil configurarlo. Es necesario editar el archivo /etc/mysql/mariadb.conf.d/50-server.cnf:
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Buscaremos dentro de la sección [mysqld] la directiva bind-address:
... [mysqld] ... # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 ...
Si nos fijamos en el valor de la configuración por defecto, 127.0.0.1, podemos darnos cuenta de que sólo están permitidas las conexiones locales, desde el propio sistema Debian 10.
Para permitir el acceso remoto a MariaDB podemos cambiar este valor a 0.0.0.0 ó desactivar la directiva precediéndola con un carácter #:
... #bind-address = 127.0.0.1 ...
Desactivar la directiva tiene el mismo efecto que cambiar su valor por 0.0.0.0, que es permitir las conexiones desde cualquier otra máquina externa, incluyendo conexiones desde Internet.
Para que los cambios tomen efecto, hay que reiniciar el servicio mariadb:
~$ sudo systemctl restart mariadb.service
Desde este momento el acceso remoto está permitido y a la espera de conexiones.
Cómo conectar remotamente al servicio MariaDB en Debian 10
Para probar el acceso remoto a nuestro servicio MariaDB en Debian 10 conectaremos desde otra máquina de la red local, usando el cliente mysql que está presente en prácticamente todos los sistemas con MariaDB o MySQL.
El uso del cliente mysql para conexiones remotas es similar al uso local, basta con usar el parámetro -h acompañado de la dirección IP o nombre de la máquina a la que queremos conectar.
En este ejemplo, el sistema Debian 10 en el que hemos instalado MariaDB tiene la dirección IP local 192.168.112.118, y su nombre cualificado completo o FQDN es debian10.local.lan. Cualquiera de estos dos valores puede ser usado para conectar desde otro punto de la red, con nuestro usuario creado con posibilidad de acceso remoto:
~$ mysql -h debian10.local.lan -u chacho -p
O si prefieres usar la dirección IP del sistema Debian 10:
~$ mysql -h 192.168.112.118 -u chacho -p
Uses el método que uses, al establecerse la conexión se te pedirá la contraseña del usuario de MariaDB e inmediatamente se abrirá la sesión de trabajo:
~$ mysql -h debian10.local.lan -u chacho -p Enter password: MariaDB [(none)]>
Y ya estaríamos listos para trabajar.
Sincronizar la zona horaria de MariaDB con Debian 10
Puede ocurrir que MariaDB no configure la zona horaria correctamente y trabaje internamente con una hora distinta a la del sistema. La primera vez que se apague el sistema todo irá bien, pero después de iniciar el sistema, en el siguiente apagado MariaDB lo impedirá y obtendremos este mensaje:
a stop job is running for mariadb 10.3.27 database server
Antes de apagar y que te ocurra esto puedes comprobar si MariaDB Server sincroniza la zona horaria con Debian 10 mediante el comando systemctl status mariadb
. Verás una línea similar a esta:
... Active: active (running) since Thu XXXX-XX-XX 22:53:43 CEST; 1h 57min left ...
Si esa marca horaria va adelantada (o retrasada) en una o más horas con respecto a la hora del sistema es muy posible que se deba a que el reloj de tiempo real o RTC no esté configurado en UTC, por lo que MariaDB aplicará el desfase de la zona horaria del sistema al RTC, de ahí la disparidad. Se soluciona configurando el RTC en horario UTC.
Conclusión
Ahora ya sabes cómo instalar y configurar MariaDB en Debian 10 paso a paso y podrás crear tus propios usuarios y bases de datos. Pero también serás capaz de dejar el servicio listo para que puedan funcionar complejas aplicaciones y sistemas que usan este motor de bases de datos.
¿Tienes alguna duda, pregunta o sugerencia? Déjame un comentario y le echo un vistazo.
¡Apoya este sitio!
Si te hacías un lío con la instalación y configuración de MariaDB en Debian 10 y has salido del callejón sin salida con esta pequeña guía, puedes agradecérmelo si quieres dejando una propina de 1 $ para una Cocacola desde PayPal:
O, si te sientes especialmente generoso, puedes invitarme a un café…
¡Gracias!
Actualizado para incluir las versiones oficiales 10.6, 10.11, 11.3 y 11.4.