Uno de los casos más frecuentes en el mundo del internet y de los analistas de sistemas es cómo conectar una BD MySQL de forma remota, aunque puede ser cualquier motor de bases de datos hoy explicaremos la conexión desde MySQL.
Estas conexiones se realizan siempre con un fin, y es no depender de una visita física en las instalaciones de la empresa a la que vamos a revisar la información; aunque en la mayor parte las bases de datos están en la nube, los canales desde la planta ya están previamente configurados y con el boom del trabajo remoto se ha vuelto muy necesario poder establecer las conexiones remotas.
Cuando queremos tener una arquitectura de aplicación distribuida en varios servidores, algo primordial sería tener un servidor de bases de datos y un servidor web; para permitir distribuir la carga de trabajo en dos máquinas distintas.
Con todo lo anterior vamos a revisar cuáles serían los puntos básicos que debemos atender para poder disponer de una conexión remota para nuestro motor de base de datos.
Pasos para habilitar la conexión remota:
- Apertura del puerto: Si estamos trabajando con MySQL / MariaDB debemos permitir el acceso al puerto 3306 de nuestro servidor de BD.
- Crear usuario de MySQL: Después de crear nuestra base de datos, debemos crear un usuario predeterminado que permita el acceso a nuestra información y que tenga los permisos suficientes para comunicarse con nuestra BD.
- Permitir conexiones remotas: Debemos también informarle a nuestro servidor que habilite la comunicación externa hacia la base de datos.
Recomendamos que las conexiones remotas sean habilitadas únicamente para determinadas IP, por lo que debemos conocer cuál será la IP de nuestro servidor web; esta configuración se hace con el fin de enrutar desde una misma dirección las peticiones de la información.
Aperturar puerto 3306
Esta configuración se realiza desde el firewall del servidor del gestor de bases de datos, aunque los pasos dependen de qué firewall estés usando gte dejamos este comando que es de los más comunes para servidores linux.
sudo ufw allow from 0.0.0.0 to any port 3306
En esta instrucción debemos reemplazar el 0.0.0.0 por la ip de nuestro servidor de aplicaciones.
Crear BD y usuario MySQL
Debemos iniciar nuestro cliente de MySQL, generalmente realizamos esta acción por el protocolo ssh donde entraremos o iniciaremos MySQL por línea de comandos, para ejecutar estos comandos:
create database bbdd;
create user mi_usuario@0.0.0.0;
grant all on bbdd.* to mi_usuario@x.x.x.x;
flush privileges;
Con esos comandos, creamos la BD, luego el usuario y le permitimos a ese usuario el acceso a nuestra BD, el último comando es para permitir que las acciones sean tenidas en cuenta inmediatamente realicemos la acción.
Más adelante podremos hablar un poco más de estos comandos Linux, déjanos saber si estarías interesado.
Configurar conexiones remotas
Debemos tener claro que por defecto MySql no permitirá conexiones que se realicen desde servidores externos por medidas de seguridad. Debido a esto, se deben editar los archivos de configuración.
Los archivos de configuración de MySQL los encontramos en la siguiente ruta, a partir de la raiz de la carpeta de instalación:
/etc/mysql/mysql.conf.d/mysqld.cnf
Ten en cuenta que el archivo de configuración de MySQL dependiendo de la distribución puede estar en otro lugar. Incluso el archivo de configuración puede hacer «include» de varios archivos sueltos. Esto lo tendrás que verificar en tu máquina en concreto. La ruta que he señalado es la que corresponde a Ubuntu.
Una vez en el archivo de configuración debes buscar una linea que dice “bind-address” y en la cuál debemos listar las IPs que vamos a configurar para acceder a nuestra BD.
bind-address = 127.0.0.1
Una vez estés en este punto, ya tendrás disponible a tu MySQL para conectarte desde una ubicación externa y en la cuál podrás realizar conexiones desde cualquier ubicación que desees. Esperamos te pueda servir este mini tutorial y no olvides que DBA Experts es tu aliado para tus procesos organizacionales, cuéntanos en los comentarios y/o nuestras redes sociales, sobre qué tema te gustaría que habláramos.