Como instalar Mariadb en Debian 12
¿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)]>