Cómo configurar un servidor de base de datos MariaDB 15.1 (válido para MySQL) en sistema operativo Linux Debian 11.7.0 para permitir conexiones externas (remotas). El procedimiento es válido para otras distribuciones de Linux basadas en Debian (Ubuntu, Mint, etc.) y muy similar para el resto de distribuciones Linux.

Requisitos para habilitar acceso externo remoto a MariaDB MySQL en Linux Debian 11

Necesitaremos disponer de un equipo con Linux Debian 11 (proceso válido para otras distribuciones basadas en Debian como Ubuntu, Mint, Deepin, SteamOS, MX, Kali, Knoppix, etc. En el siguiente enlace mostramos cómo instalar Linux Debian 11:

Dispondremos de MariaDB Server en el equipo. En el siguiente enlace explicamos cómo instalar MariaDB Server en Linux Debian 11:

Si el equipo Linux tiene el cortafuegos activado, deberemos abrir el puerto que estemos usando para MariaDB/MySQL, por defecto el 3306. Por ejemplo, para abrir el puerto 3306 para todos los equipos de la red, usaremos el comando:

Lo ideal y más seguro es abrir solo IP o rangos de IP que realmente vayan a necesitar acceso al servidor de MariaDB y no todos. Por ejemplo, para abrir el puerto 3306 únicamente al equipo con IP 192.168.1.100 usaremos:

Para permitir el acceso por el puerto 3306 para todos los equipos de una red (por ejemplo para la red 192.168.1.0/24), usaremos:

Si hemos hecho cambios en el cortafuegos y queremos aplicarlos sin reiniciar el equipo, ejecutaremos el comando:

Crear usuario en MariaDB MySQL para acceso remoto

Para crear un usuario, desde la línea de comandos de Linux, accederemos al shell de MariaDB, con el comando:

Nos solicitará la contraseña del usuario root (el que se crea con la instalación de MariaDB/MySQL).

Para crear un usuario llamado «alonso», con privilegios de acceso y modificación (permitiendo consultas DDL tipo CREATE, DROP, ALTER y DML tipo SELECT, INSERT, UPDATE, DELETE) sobre la base de datos «proyectoa», y permitiendo la conexión desde equipos con IP del rango 192.168.1.0, ejecutaremos:

Ejecutaremos el siguiente comando para aplicar los cambios de privilegios:

Y saldremos del shell de MariaDB/MySQL con:

Crear usuario en MariaDB MySQL para acceso remoto

El comando anterior creará el usuario «alonso» en MySQL, con la contraseña «contraseña» y con acceso a la base de datos «proyectoa». Este usuario únicamente podrá acceder desde equipos con IP 192.168.1.x, siendo x desde 1 a 255.

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

A continuación, modificaremos el fichero /etc/mysql/mariadb.conf.d/50-server.cnf con

También podemos editar el fichero /etc/mysql/my.cnf (producirá el mismo efecto).

Si contiene la línea:

bind-address = 127.0.0.1

La comentaremos añadiéndole una almohadilla delante (#). Y añadiremos la línea:

bind-address = 0.0.0.0

Con la línea anterior permitiremos el acceso a MariaDB desde cualquier IP. Lo ideal, por seguridad, es restringir las conexiones a un rango de direcciones IP. De todas formas, no es obligatorio si hemos creado el usuario de MariaDB permitiendo la conexión sólo desde un rango de direcciones IP y, además, tenemos activado el cortafuegos para Debian (ufw) y lo hemos configurado para permitir únicamente conexiones desde este rango y el puerto de MariaDB.

Guardaremos los cambios pulsando Control + O y cerraremos la edición pulsando Control + X.

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

Reiniciaremos el servicio de MariaDB para aplicar los cambios, con el comando:

Probaremos el acceso externo con algún cliente de MySQL o MariaDB, por ejemplo usando MySQL Workbench:

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

Al introducir los datos de conexión y pulsar en «Test Connection», el cliente nos advertirá de que estamos accediendo a un servidor de base de datos no compatible. Responderemos «Continue Anyway»:

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

Si todo es correcto, se realizará la conexión con el servidor de MariaDB Server en Linux Debian 11:

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

Accediendo, podremos ver las tablas de la base de datos «proyectoa» y sus registros:

Configurar MariaDB/MySQL en Linux Debian para permitir conexiones remotas

Acceso remoto a MariaDB MySQL desde otro equipo Linux con mariadb_client

Para acceder de forma externa/remota desde otro equipo con Linux, instalaremos el cliente de MariaDB con el comando:

Acceso remoto a MariaDB MySQL desde otro equipo Linux con mariadb_client

Una vez instalado el cliente, accederemos al equipo con MariaDB Server con el siguiente comando:

En el ejemplo anterior, conectaremos con el servidor de MariaDB con IP 192.168.1.125, con el usuario «alonso» creado anteriormente. Nos solicitará la contraseña del usuario, la introduciremos, pulsaremos INTRO y ya tendremos acceso al cliente de MariaDB. Desde aquí podremos realizar cualquier tarea en el servidor de base de datos:

Para mostrar las bases de datos (catálogos) del servidor:

Para acceder a una base de datos (por ejemplo a «proyectoa»):

Para mostrar las tablas de la base de datos:

Para mostrar los registros de una tabla (por ejemplo «facturas»):

Acceso remoto a MariaDB MySQL desde otro equipo Linux con mariadb_client