Cómo instalar MariaDB en Debian 10 Buster

Cómo instalar MariaDB en Debian 10 Buster

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 sistema Debian 10. 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.

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 de instalar MariaDB en Debian 10 es a través de los paquetes del propio repositorio de la distribución. Por lo tanto, 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 -y upgrade

Ya está el sistema preparado para instalar nuevos paquetes procedentes del repositorio. En esta ocasión el paquete que buscamos es mariadb-server, que corresponde a la versión 10.3 de MariaDB. Usamos apt para instalarlo:

~$ 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 systemctl:

~$ systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
   Active: active (running) since Mon 2019-07-15 19:57:56 CEST; 6min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 1756 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 1150)
   Memory: 75.6M
   CGroup: /system.slice/mariadb.service
           └─1756 /usr/sbin/mysqld

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.

como instalar mariadb en debian 10 buster

Sin embargo, cualquier usuario que crees con root sí usará el sistema habitual de autenticación por contraseña.

Si por algún motivo deseas que root de MariaDB también use el sistema de autenticación por contraseña, sigue estos pasos:

~$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 51
Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> alter user root@localhost identified by 'XXXXXXXX';
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> exit
Bye
~$

En resumen lo que hacemos es anular el plugin unix_socket para el usuario root dejando que MariaDB use el plugin por defecto. Lógicamente a continuación establecemos una contraseña para root.

Ahora cualquier usuario de Debian 10 puede iniciar sesión como root en MariaDB si conoce su contraseña.

~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Dependerá de las necesidades del sistema o de tus gustos personales usar un sistema de autenticación u otro para root.

¿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 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.

Cómo crear tu propio usuario administrador

Quizás te interese poder trabajar y administrar MariaDB con un usuario distinto de root, incluso con capacidades de acceso remoto. Vamos a crear nuestro propio usuario con capacidades de crear otros usuarios y bases de datos.

~$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 55
Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user chacho identified by 'XXXXXXXX';
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> grant all privileges on *.* to chacho with grant option;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit
Bye
~$

Este nuevo usuario podrá crear otros usuarios y bases de datos, administrar permisos y acceder de forma remota a MariaDB.

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. 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 -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 -u chacho -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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.15 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 invitándome a un café si te apetece

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…
Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies