Cómo conectar remotamente con el servidor de base de datos en MariaDB

En un artículo anterior explicamos cómo hacer el despliegue de una base de datos MariaDB en Linux, que merece la pena leer si no se tiene mucha experiencia en este campo. Ahora vamos a realizar una práctica extra, que consiste en disponer de un servidor de base de datos independiente, al que accedemos desde el servidor de aplicación. Para este ejemplo vamos a usar WordPress como aplicación web y lo conectaremos al servidor de base de datos MariaDB.

Abrir el puerto de MySQL en el firewall

Nuestra primera tarea consiste en abrir el puerto en el firewall del servidor MariaDB, que es el mismo que usa de manera predeterminada MySQL. En este punto tenemos dos servidores:

  • Servidor de MySQL
  • Servidor de aplicación (WordPress)

Tenemos que abrir el puerto 3306 en el servidor de MySQL para que se pueda conectar desde la IP del servidor de aplicación. Podríamos abrir el puerto para conexiones desde cualquier IP, pero esa sería una configuración innecesaria y menos segura. Para ello, nos vamos al menú de Red > Políticas de Firewall en el panel de Cloudbuilder Next. Entonces creamos una política de firewall con las mencionadas características, que además permita conexiones SSH al puerto 22, para poder acceder al servidor para su administración.

Ahora tenemos que ir a la administración del servidor de MariaDB y asignar la nueva política de firewall que acabamos de crear.

Crear una base de datos y un usuario capaz de conectar remotamente

La siguiente tarea será la creación de una base de datos en el servidor de MariaDB. Además tendremos que crear un usuario que sea capaz de conectar con esa base de datos desde un sistema remoto. 

Es importante, tal como se comentaba en el artículo anterior del despliegue de MariaDB, que hayamos securizado la instalación del sistema gestor de base de datos, con el comando mysql_secure_installation. Ese paso ha producido que no se pueda conectar con root desde sistemas remotos, por lo que es indispensable que creemos el nuevo usuario.

Esta tarea consta de varios pasos, que tenemos que hacer conectando con el usuario root a MariaDB, habiendo entrado mediante SSH en el servidor de bases de datos.

mysql -u root -p

Introducimos nuestra clave de root. Entonces creamos una base de datos nueva:

create database bbdd_wp;

Ahora creamos el nuevo usuario. En este punto tenemos que indicar qué IP tiene el servidor desde donde vamos a conectarnos con este nuevo usuario.

create user mi_usuario@0.0.0.0;

Obviamente, la IP 0.0.0.0 la sustituirás por la IP del servidor de aplicación, que puedes consultar desde el panel de Cloudbuilder Next. Por supuesto, también podemos poner el nombre de usuario que consideremos oportuno.

A continuación asignamos para el nuevo usuario una clave y los privilegios sobre la base de datos creada con anterioridad.

grant all on bbdd_wp.* to mi_usuario@0.0.0.0 identified by 'CLAVE-segura';

Recuerda que la clave debería tener suficiente fuerza, además de usar siempre la IP del servidor de aplicación y tu propio nombre de usuario. Por último corremos el comando necesario para asegurarnos que todos los cambios se encuentren correctamente propagados.

flush privileges;

Como paso extra, vamos a verificar que la configuración de MariaDB está correcta en cuanto a la posibilidad de acceder mediante un servidor remoto. Para ello edita el archivo de configuración de MySQL  my.cnf, que está en la ruta /etc/mysql (en otras distribuciones que no sean Ubuntu pueden estar en otros lugares).

Si encuentras una línea como:

bind-address = 127.0.0.1

O bien

bind-address = localhost

Debes de comentarla, colocando una # al principio, o bien colocar la IP del servidor con el que te vas a conectar a MySQL. Debes asegurarte también que todos los cambios están correctamente aplicados reiniciando MariaDB.

Conectar con la base de datos remota

Ahora vamos a conectar con la base de datos remota. Para ello podemos realizar el comando de conexión que ya conocemos. Este comando lo ejecutamos en el servidor de aplicación, donde se ha publicado WordPress.

mysql -h 1.1.1.1 -u mi_usuario -p

Aquí tendrás que usar por supuesto la IP donde tienes la instalación de MariaDB. Lanzado este comando se solicitará la clave que has configurado anteriormente para este usuario. Si has podido realizar la conexión, ahora es el momento de instalar WordPress y colocar los datos de tu base de datos remota, como aparece en la siguiente imagen:

Eso es todo. Ahora tienes WordPress instalado en un servidor y la base de datos en otro. Esperamos que te haya resultado de ayuda.