Habilitar conexión remota a MySQL o mariaDB

Puede que en algún momento tengas la necesidad de habilitar conexión remota a MySQL o mariaDB para acceder a la base de datos de tu servidor web desde un servidor diferente. Por ejemplo, cuando montas los ficheros de la web en un servidor diferente al de la base de datos. Recuerda que cuando realizas la instalación en un servidor los ficheros de la web y la base de datos son alojados en el mismo host.

Si realizas la instalación del servidor de bases de datos (BBDD) en un servidor diferente al utilizado para el alojamiento de los archivos de tu web y la correspondiente instalación del servidor web necesitarás permitir una conexión remota a la base de datos. Por defecto cuando instalas MySQL o mariaBD no es posible.

Conexión remota a una base de datos
Conexión remota a una base de datos

Por lo tanto, necesitas habilitar la conexión remota a tu servidor de bases de datos. ¿Quieres saber cómo?.

Configurar una base de datos remota

En las siguientes líneas verás cómo configurar tu servidor de base de datos para que se pueda acceder tanto desde el servidor web remoto como desde el propio servidor.

Recuerda que por defecto el servidor de bases de datos se encuentra configurado para escuchar únicamente conexiones a nivel local (localhost).

Permitir escuchar tráfico externo

A fin de habilitar un acceso remoto es necesario que habilites la escucha de direcciones IP externas. Para ello tienes que modificar una línea del fichero de configuración. Dependiendo del servidor de bases de datos que utilices, MySQL o mariaDB, encontraras que el fichero de configuración no es nombrado de igual forma.

Archivo de configuración MySQL

Para activar el acceso remoto en MySQL, abre tu archivo mysqld.cnf:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Archivo de configuración mariaDB

Para activar el acceso remoto en mariaDB, abre tu archivo 50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Modificar el archivo de configuración

Una vez abierto, localiza la línea que empieza con la directiva bind-address, que por defecto tiene que tener el valor asignado es 127.0.0.1.

Esto significa que el servidor permitirá únicamente conexiones locales.

Por lo que si lo que quieres es permitir en acceso desde una dirección IP remoto, tienes que cambiar esta directiva para que haga referencia a una dirección IP externa o remota.

Podemos usar wildcards (comodines) y permitir cualquier conexiones remota sin restringir a direcciones IP específicas.

Por ejemplo, asignando los siguientes valores *, ::, o 0.0.0.0:

lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

Como puedes deducir, si conoces la IP remota, puedes asignarla a la directiva bind-address. Consiguiendo de esta forma que solo se pueda acceder, si o si, desde esa ubicación.

Una vez modificado el archivo de configuración, guarda y cierra el archivo.

Reiniciar el servicio de base de datos

Ahora solo te queda reiniciar el servicio de MySQL o mariaDB para que los cambios realizados en los ficheros de configuración (mysqld.cnf, 50-server.cnf) tengan efecto.

reiniciar servicio MySQL

sudo systemctl restart mysql

reiniciar servicio mariaDB

sudo systemctl restart mairaDB

Conclusión

Como has podido leer en las líneas anteriores con una pequeña modificación del fichero de configuración del servidor de bases de datos podrás acceder desde un servidor externo a tus bases de datos. Con esta pequeña modificación, puedes tener alojada la web y la base de datos en maquinas diferentes.

Espero que este pequeño tutorial te haya ayudado a configurar el acceso remoto a la base de datos.

Nos vemos en el siguiente post, ciao!!