Acceso externo a servidor de MySQL en servidores Linux

Rate this post

Pasos necesarios para poder configurar el acceso externo al servidor de MySQL

Cuando se crea un servidor de bases de datos MySQL en un servidor Linux, por defecto, este no tiene la configuración necesaria para aceptar conexiones externas al servidor por motivos de seguridad. En este artículo te indicaremos los pasos necesarios para poder configurar el acceso externo a dicho servidor de bases de datos.

PASO 1

El servicio de MySQL por defecto utiliza el puerto 3306. Para poder hacer la conexión de forma externa al servidor, tienes que habilitar este puerto en la política de firewall del panel de control para el protocolo TCP. También se podría hacer uso de la utilidad Insertar valores estándar como se indica en la imagen inferior.

Paso 1

PASO 2

Como comentábamos anteriormente, el servidor de base de datos viene configurado para aceptar únicamente conexiones desde el servidor en el que se aloja. Para poder modificarlo, tienes que acceder por SSH o por consola al servidor y modificar el contenido de uno de los ficheros de configuración.

El fichero se llama “my.cnf” y, por defecto, tendrá la siguiente línea que únicamente permite conexiones locales:

“bind-address = 127.0.0.1”

Paso 2 bind-address

Para permitir conexiones desde cualquier punto a nuestro servidor MySQL, habría que sustituir la IP local “127.0.0.1” por “0.0.0.0” como se puede ver en la imagen inferior. Esta configuración haría de comodín para cualquier IP.

Paso 2 bind-address 0

PASO 3

Con este fichero también tienes la posibilidad de limitar el acceso al servidor de bases de datos a una ubicación específica por motivos de seguridad. Si por ejemplo, quieres que a dicho servidor únicamente se pueda acceder desde nuestra oficina, puedes sustituir en el fichero la IP anterior por la nuestra.

En función de qué sistema operativo utilices, este fichero de configuración se encontraría en diferentes rutas. Además, una vez modificado necesitarás reiniciar el servicio MySQL para que tome los nuevos valores configurados.

  • En Ubuntu y Debian
    La ruta del fichero es: /etc/mysql/my.cnf
    Para reiniciar el servicio MySQL habrá que utilizar el siguiente comando:
    “service mysql restart”
  • En CentOS
    La ruta es: /etc/my.cnf
    Para reiniciar el servicio MySQL en CentOS habrá que utilizar este otro comando: “service mysqld restart”

Configuración extra si tenemos instalado Plesk en nuestro servidor

Si tu servidor tiene instalado el panel de control Plesk, tendrás que revisar que la configuración en este panel también sea la correcta. Para ello:

  1. Accede a la sección Herramientas y configuración – Aplicaciones y bases de datos – Servidores de bases de datos – Configuración y revisa que la configuración para el acceso remoto permita conexiones remotas desde cualquier host como se puede ver en la imagen inferior:

    Configuración extra

  2. Dentro de un mismo servidor Linux, puede haber más de un servidor de bases de datos instalado. Si quieres que no todos acepten conexiones externas, tienes la posibilidad de configurarlo en la sección Herramientas y configuración – Aplicaciones y bases de datos – Servidores de bases de datos pulsando sobre el servidor en cuestión. Aquí encontrarás la opción Permitir al servidor MySQL local aceptar conexiones externas. En caso de necesitar habilitar el acceso desde cualquier IP, tendrías que verificar que esta casilla esté marcada como se ve en la siguiente imagen:

    Permitir conexiones remotas

Cómo conectar desde un cliente gestor de bases de datos

Cuando ya tengas las configuraciones anteriores realizadas, podrás conectarlos desde un cliente de bases de datos externo como “HeidiSQL”, “MySQL Workbench”…
Los datos que necesitarás serán:

  • IP/Nombre del host: IP del servidor (lo podrás ver en la sección Infraestructura – Servidores del panel de control).
  • Puerto: 3306
  • Usuario y contraseña (los definidos a la hora de crear la base de datos).
  • Algunos de estos gestores también piden el tipo de conexión, en este caso tienes que seleccionar MySQL de tipo TCP/IP.