Cómo configurar una base de datos remota en cPanel (acceso externo)
Conectar a la base de datos de tu sitio web desde una aplicación externa, como un gestor de escritorio (MySQL Workbench, Navicat) o un script en otro servidor, es una necesidad muy común. Sin embargo, por seguridad, los servidores de hosting suelen bloquear estas conexiones por defecto.
En este artículo, te voy a guiar paso a paso para que configures el acceso externo MySQL en tu panel de control cPanel. Aprenderás a habilitar el host remoto, crear un usuario con permisos específicos y solucionar los errores más frecuentes.
Vamos a ello, sin necesidad de ser un experto en servidores.
¿Qué es una base de datos remota y por qué necesitas configurarla?
Cuando instalas WordPress o cualquier CMS en tu hosting, la base de datos y el sitio web viven en el mismo servidor. La conexión es interna y no requiere configuración especial.
Pero si quieres, por ejemplo, conectar tu tienda online (alojada en un servidor) con una aplicación de escritorio para gestionar inventario, o sincronizar datos con otro sitio web en un hosting distinto, necesitas que tu base de datos acepte conexiones desde fuera.
Eso es lo que llamamos base de datos remota cPanel. El proceso es sencillo:
- Autorizar la IP o el host desde el que te conectarás.
- Crear o modificar un usuario MySQL con permisos para acceder desde esa IP.
- Obtener los datos de conexión (host, puerto, usuario y contraseña).
Vamos a verlo en detalle.
Requisitos previos antes de empezar
Antes de tocar nada en cPanel, asegúrate de tener lo siguiente:
- Acceso a cPanel: normalmente es
tudominio.com/cpanelotudominio.com:2083. - Credenciales de administrador del panel.
- La IP pública desde la que te conectarás. Si no la sabes, puedes visitar sitios como
whatismyip.comoipconfig.medesde el dispositivo que usarás para la conexión. - Una base de datos ya creada en cPanel. Si no la tienes, créala primero en la sección "Bases de datos MySQL".
[WARNING]
Si tu IP es dinámica (cambia a menudo), tendrás que actualizar el host remoto cada vez que cambie. Para evitar dolores de cabeza, considera usar una IP estática o una VPN con IP fija.
Paso 1: Acceder a la sección "Bases de datos MySQL" en cPanel
Una vez dentro de cPanel, busca la sección "Bases de datos" (o "MySQL Databases" en inglés). El icono suele ser un cilindro de base de datos. Haz clic en él.
Aquí verás todas tus bases de datos existentes y los usuarios MySQL. No te preocupes si el panel se ve diferente al mío, la estructura es muy similar en casi todos los hosting que usan cPanel.
Paso 2: Habilitar el acceso remoto (host remoto)
El acceso externo MySQL está deshabilitado por defecto. Para habilitarlo, debes añadir el host (IP) desde el que te conectarás a la lista de hosts remotos permitidos.
En la misma página de "Bases de datos MySQL", busca una sección que dice "Hosts remotos de MySQL" o "Remote MySQL".
- En el campo de texto, escribe la IP pública de tu conexión.
- Haz clic en el botón "Agregar host" o "Add Host".
[INFO]
Puedes añadir varias IPs separadas por comas, o incluso usar un rango con el comodín %. Por ejemplo, 192.168.1.% permitiría todas las IPs desde la 192.168.1.1 hasta la 192.168.1.254. Pero ojo, usar % para todo es un riesgo de seguridad enorme.
Si no sabes tu IP, el propio cPanel a veces te muestra la IP desde la que estás accediendo en esa misma sección. Búscala.
Paso 3: Crear un usuario MySQL específico para la conexión remota
Es una mala práctica usar el mismo usuario de tu sitio web para conexiones externas. Lo ideal es crear un usuario nuevo con permisos limitados.
En la misma página, en la sección "Usuarios MySQL", crea un usuario nuevo.
- Escribe un nombre de usuario (por ejemplo,
remoto_app). - Escribe una contraseña segura (el panel te da un generador, úsalo).
- Haz clic en "Crear usuario".
Paso 4: Asignar el usuario a la base de datos
Ahora tienes que vincular este nuevo usuario a la base de datos a la que quieres acceder.
- En la sección "Agregar usuario a la base de datos", selecciona tu base de datos en el primer menú desplegable.
- Selecciona el usuario que acabas de crear en el segundo menú.
- Haz clic en "Agregar".
Te pedirá que asignes privilegios. Para una conexión remota, lo más seguro es marcar solo los permisos que necesites. Si no sabes cuáles son, selecciona "TODOS LOS PRIVILEGIOS" para que funcione sin problemas, pero revísalos más tarde.
Paso 5: Obtener los datos de conexión (host, puerto y credenciales)
Ahora viene la parte crucial. Para conectar desde fuera, necesitas saber el host remoto que debes usar en tu aplicación.
- Host: No uses
localhost. Debes usar el nombre del servidor de tu hosting, que suele ser algo comolocalhostpero con el dominio. Lo puedes encontrar en la sección "Bases de datos MySQL" en la parte superior, donde dice "Host remoto" o "Server". A menudo es algo comomysql.tudominio.comolocalhostcon el puerto.
[TIP]
Si no encuentras el host remoto, mira en la información de tu cuenta de hosting o en el correo de bienvenida. También puedes probar con localhost en el puerto 3306, pero en la mayoría de los casos no funcionará desde fuera.
-
Puerto: El puerto por defecto de MySQL es el 3306. Pero algunos hosting usan puertos alternativos por seguridad. Verifica en la documentación de tu proveedor.
-
Usuario y contraseña: Los que acabas de crear.
Paso 6: Configurar tu aplicación o cliente MySQL
Ahora que tienes los datos, ve a tu aplicación (por ejemplo, MySQL Workbench o un script PHP) y usa estos parámetros:
- Hostname: el host remoto que obtuviste.
- Puerto: 3306 (o el que te indique tu hosting).
- Usuario: el usuario remoto que creaste.
- Contraseña: la que le asignaste.
- Base de datos: el nombre de tu base de datos.
En MySQL Workbench, por ejemplo, creas una nueva conexión y rellenas esos campos. En un script PHP con mysqli, sería algo así:
$conn = new mysqli("mysql.tudominio.com", "remoto_app", "tu_contraseña", "tu_base_datos", 3306);
Solución de problemas comunes (FAQ)
Aquí tienes las dudas más habituales y cómo resolverlas.
¿Por qué me da error "Connection refused" o "Can't connect" (10061)?
Esto indica que el puerto 3306 no está abierto o que el host remoto no está bien configurado.
- Revisa que hayas añadido la IP correcta en el paso 2.
- Asegúrate de que tu hosting no bloquee el puerto 3306 en el firewall. Algunos hosting requieren que abras un ticket de soporte para habilitarlo.
¿Y si me dice "Access denied for user"?
Ese error significa que el usuario no tiene permisos para conectarse desde esa IP.
- Verifica que el usuario que usas es el que añadiste a la base de datos.
- Comprueba que la IP desde la que te conectas es la misma que pusiste en el host remoto. Si tu IP cambió, actualízala.
¿Puedo usar % como host remoto para permitir cualquier IP?
Técnicamente sí, pero es altamente desaconsejable. Cualquier persona que obtenga tu usuario y contraseña podría acceder a tu base de datos desde cualquier lugar del mundo. Si lo haces, asegúrate de usar una contraseña muy larga y compleja.
¿Qué es el puerto 3306 y por qué no puedo conectarme?
El puerto 3306 es el estándar para MySQL. Si tu hosting usa un puerto diferente, te lo indicarán en la documentación. Puedes probar con el puerto 3307 o 33060 en algunos casos.
Mi conexión funciona, pero es muy lenta. ¿Qué hago?
La latencia entre tu ordenador y el servidor puede ser alta. Intenta usar una conexión VPN o un túnel SSH si el hosting lo permite. También puedes optimizar las consultas de tu aplicación.
Consejos de seguridad importantes
Conectar una base de datos a internet es un riesgo, así que toma estas precauciones:
- Usa siempre una IP específica en lugar de
%. - Crea usuarios con permisos mínimos. Si solo necesitas SELECT, no des DELETE.
- Cambia las contraseñas periódicamente.
- No uses el usuario
rootpara conexiones remotas. - Habilita SSL para la conexión si tu hosting lo permite.
¿Y si uso otro panel de control?
Si en lugar de cPanel usas Syspanel (anteriormente conocido como HestiaCP), el proceso es diferente.
En Syspanel, el acceso al panel se realiza a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). Dentro de Syspanel, busca la sección de bases de datos. Deberás editar la configuración del servidor MySQL para permitir conexiones externas, lo que normalmente implica editar el archivo de configuración my.cnf y añadir tu IP en la directiva bind-address. Es un proceso más técnico, así que te recomiendo consultar la documentación oficial de Syspanel.
Conclusión
Configurar una base de datos remota cPanel no es complicado si sigues estos pasos. Solo necesitas la IP correcta, un usuario con permisos y el puerto adecuado.
Recuerda que la seguridad es lo primero: limita el acceso solo a las IPs que lo necesiten y usa contraseñas robustas. Con esto, podrás conectar desde fuera sin problemas y llevar tu proyecto al siguiente nivel.
Si te ha quedado alguna duda, déjala en los comentarios y te ayudaré a resolverla.
