Como instalar Mariadb en Debian 12

mariadb

¿Que es MariaDB?

Mariadb es un sistema gestor de base de datos de código abierto que deriva de MySQL. Se usa para almacenar y organizar datos de aplicaciones que hacen uso de una Base de datos.

Requisitos

  • Sistema Debian 12 actualizado.
  • Privilegios de root o sudo.
  • Acceso a internet.

Instalación de Mariadb

Para instalar Mariadb necesitamos el paquete ‘mariadb-server’ que podemos instalarlo con apt:

root@mariadb:~# apt install mariadb-server -y

Podemos comprobar el estado del servicio de mariadb con systemctl:

root@mariadb:~# systemctl status mariadb.service

Salida del comando:

* mariadb.service - MariaDB 10.11.3 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-08-04 17:04:33 UTC; 1min 6s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 3343 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 11 (limit: 18995)
     Memory: 78.7M
        CPU: 322ms
     CGroup: /system.slice/mariadb.service
             `-3343 /usr/sbin/mariadbd

Aug 04 17:04:33 mariadb mariadbd[3343]: 2023-08-04 17:04:33 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
Aug 04 17:04:33 mariadb mariadbd[3343]: 2023-08-04 17:04:33 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-secon>
Aug 04 17:04:33 mariadb mariadbd[3343]: 2023-08-04 17:04:33 0 [Note] Server socket created on IP: '127.0.0.1'.
Aug 04 17:04:33 mariadb mariadbd[3343]: 2023-08-04 17:04:33 0 [Note] InnoDB: Buffer pool(s) load completed at 230804 17:04:33
Aug 04 17:04:33 mariadb mariadbd[3343]: 2023-08-04 17:04:33 0 [Note] /usr/sbin/mariadbd: ready for connections.
Aug 04 17:04:33 mariadb mariadbd[3343]: Version: '10.11.3-MariaDB-1'  socket: '/run/mysqld/mysqld.sock'  port: 3306  Debian 12
Aug 04 17:04:33 mariadb systemd[1]: Started mariadb.service - MariaDB 10.11.3 database server.

Como conectarse a Mariadb desde consola

Por defecto mariadb solo incluye el usuario root al cual podemos conectarnos desde la consola de la máquina donde está instalado mariadb con el comando ‘mysql’ (Con el usuario root o con sudo). No pide contraseña debido a que se autentica por defecto con sockets Unix.

root@mariadb:~# mysql

Salida del comando:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.11.3-MariaDB-1 Debian 12

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)]>

Configuración de usuarios

Si preferimos acceder con el usuario root mediante una contraseña podemos asignarla estando conectados a mariadb con el siguiente comando (cambie ‘password’ por la contraseña que quiere usar):

> alter user root@localhost identified by 'password';

Ahora para futuros inicios de sesión tenemos que indicar en el comando el usuario que queremos usar:

root@mariadb:~# mysql -u root -p

Salida del comando:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.3-MariaDB-1 Debian 12

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)]>

Si queremos crear nuestro propio usuario administrador podemos hacerlo con el siguiente comando (estando conectados a mariadb):

> grant all privileges on *.* to ringedbeak identified by 'password123' with grant option;

Actualizamos los permisos:

> flush privileges;

Cerramos la conexión con ’exit’ y probamos que podemos acceder con el nuevo usuario:

root@mariadb:~# mysql -u ringedbeak -p

Salida del comando:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.11.3-MariaDB-1 Debian 12

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)]>

Acceso remoto a MariaDB

Para habilitar el acceso remoto al servicio tenemos que modificar con un editor de texto el fichero 50-server.cnf:

root@mariadb:~# nano /etc/mysql/mariadb.conf.d/50-server.cnf

Una vez en el fichero buscamos la directiva ‘bind-address’. Tenemos varias maneras de habilitar el acceso remoto mediante esta linea dependiendo de la situación.

Método 1: comentar la linea

Podemos sencillamente comentar la linea añadiendo al principio ‘#’.

#bind-address            = 127.0.0.1

Método 2: Habilitar el acceso por todas las interfaz

Practicamente este metodo hace lo mismo que el anterior pero en lugar de comentar la línea cambiamos la ip 127.0.0.1 por 0.0.0.0. Que significa que se puede acceder al servicio desde cualquier interfaz de la máquina.

bind-address            = 0.0.0.0

Método 3:

Con los métodos anteriores el resultado es que el servicio es accesible desde cualquiera de las interfaces de la máquina. Pero imaginad que nuestra máquina donde está mariadb tiene 2 interfaces de red y queremos que el servicio sea accesible solo por una de ellas. Para ello tenemos que poner en la línea mencionada en los otros métodos la ip de la interfaz de red por la que queremos acceder el servicio (ip de la targeta de red del servidor, no del equipo desde el que vamos a conectarnos).

bind-address            = ip-de-la-interfaz-del-servidor

Una vez realizado el método que vamos a usar, cerramos el fichero y reiniciamos el servicio de mariadb con systemctl:

root@mariadb:~# systemctl restart mariadb

Para acceder remotamente al servicio vamos a otra máquina y nos conectamos mediante el siguiente comando:

root@mariadb-cliente:~# mysql -h 192.168.50.80 -u ringedbeak -p

 Salida del comando:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.11.3-MariaDB-1 Debian 12

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)]>