> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Errores de conexión a bases de datos en Square Cloud: MySQL Host Not Allowed, MongoNetworkError, SSL

> Soluciona Host is not allowed to connect to this MySQL server, MongoNetworkError, fallos de lista blanca de IP en MongoDB Atlas, timeout de conexión, ECONNREFUSED, y errores de conexión SSL/TLS en Square Cloud.

La mayoría de los fallos de conexión a bases de datos en Square Cloud se reducen a una de tres cosas: un certificado SSL faltante, una lista blanca de IP que no contempla una IP dinámica, o credenciales incorrectas. Compara el error exacto de abajo.

## "Host 'X' is not allowed to connect to this MySQL server"

**Qué significa:** el cliente de MySQL rechaza la conexión con este mensaje exacto.

**Por qué ocurre:** las bases de datos gestionadas de Square Cloud **requieren SSL** en cada conexión. Este error aparece cuando se intenta la conexión sin el certificado cargado, no por un firewall/lista blanca de host como sugiere el mensaje.

**Cómo solucionarlo:**

1. Abre la base de datos en el dashboard de Square Cloud y descarga los archivos de certificado (CA, cert, key, usualmente 2-3 campos).
2. Cárgalos en la configuración SSL/TLS de tu cliente:
   * **Clientes GUI** (MySQL Workbench, DBeaver, HeidiSQL): configura los archivos de certificado descargados en la pestaña SSL del cliente, luego conéctate con el host/puerto/usuario/contraseña que muestra el dashboard.
   * **Código (Prisma ORM):** convierte el cert+key del cliente a un `.p12`:
     ```bash theme={null}
     openssl pkcs12 -export -out client.p12 -inkey client.key -in client.crt
     ```
     Luego configura:
     ```
     DATABASE_URL=mysql://USER:PASSWORD@HOST:PORT/DB?sslidentity=./client.p12&sslpassword=PASSWORD
     ```
     Incluye `client.p12` dentro del `.zip` de la aplicación y configura `DATABASE_URL` en las Variables de Entorno del dashboard.
3. Verifica que el nombre de usuario y la contraseña coincidan con lo que muestra el dashboard, y reinicia la base de datos si el certificado se acaba de generar.

<Warning>Nunca subas `certificate.pem` o `client.p12` a un repositorio público, mantenlos fuera del control de versiones, pero sí inclúyelos en el `.zip` de despliegue cuando tu aplicación los lea desde disco.</Warning>

## MongoNetworkError y fallos de lista blanca de IP en MongoDB Atlas

**Qué significa:** un clúster de MongoDB Atlas alojado externamente (no una base de datos gestionada de Square Cloud) rechaza la conexión con `MongoNetworkError: connection ... closed`, aunque las credenciales sean correctas.

**Por qué ocurre:** los contenedores de aplicaciones de Square Cloud usan una **dirección IPv4 dinámica que cambia en cada reinicio**. Una lista blanca de IP de MongoDB Atlas configurada para una sola IP estática funcionará hasta el siguiente reinicio, y luego fallará silenciosamente.

**Cómo solucionarlo, elige una opción:**

1. **Recomendado si necesitas Atlas externo:** en Atlas → Network Access, agrega `0.0.0.0/0` para permitir conexiones desde cualquier IP, y compensa la lista blanca más amplia con credenciales fuertes (contraseña larga y aleatoria, usuario de base de datos dedicado, cadena de conexión guardada solo en variables de entorno).
2. **Recomendado en general:** mueve la base de datos a una [base de datos gestionada de Square Cloud](/es/services/databases) en lugar de un clúster Atlas externo. Alojar la base de datos junto a la aplicación elimina por completo el problema de la lista blanca de IP y da una latencia casi nula.

## Timeout de conexión y ECONNREFUSED

**Qué significa:** la aplicación se queda colgada hasta hacer timeout, o falla de inmediato con `ECONNREFUSED`, al intentar alcanzar una base de datos.

**Por qué ocurre, como regla general:**

* Un **timeout** (la conexión se cuelga, sin rechazo inmediato) suele significar que un firewall o lista blanca de IP en la base de datos de destino está bloqueando la conexión. Muchos proveedores externos bloquean IPs de datacenter/extranjeras por defecto.
* Un **ECONNREFUSED** o "authentication failed" inmediato suele significar que el host/puerto es alcanzable pero las credenciales, el nombre de la base de datos, o el número de puerto están equivocados.

**Cómo solucionarlo:**

1. Si te conectas a un proveedor externo (no una base de datos gestionada de Square Cloud), permite los ASN de Square Cloud en el firewall de destino: `398395` y `26548`. Donde solo se admita lista blanca basada en IP (como MongoDB Atlas), usa `0.0.0.0/0` con credenciales fuertes en su lugar, ya que la IP de origen es dinámica.
2. Verifica host, puerto, usuario y contraseña contra lo que muestra el proveedor o el dashboard de Square Cloud.
3. Codifica en URL cualquier carácter especial en la cadena de conexión (`@`, `:`, `/`, etc. dentro de una contraseña romperán el parseo si se dejan sin codificar).
4. Revisa si el driver del proveedor requiere un parámetro explícito `ssl=true` (o similar) en la cadena de conexión.

## Errores de conexión SSL/TLS

**Qué significa:** el cliente falla al establecer un handshake TLS con la base de datos, o falla justo después con un error que parece de autenticación pero en realidad es un problema de certificado.

**Por qué ocurre:** las bases de datos gestionadas de Square Cloud requieren SSL en cada conexión. Cada motor de base de datos espera el certificado en una forma ligeramente distinta:

* **Redis:** el protocolo debe ser `rediss://` (con dos s), nunca `redis://`. Forma: `rediss://default:PASSWORD@HOST:PORT`. `node-redis` también acepta `socket: { tls: true, ca: fs.readFileSync("certificate.pem") }`; la librería `redis` de Python toma `ssl_ca_certs`/`ssl_certfile`/`ssl_keyfile` (el `certificate.pem` combinado que descargas del dashboard funciona para todos).
* **Drizzle ORM (Postgres):** un `Pool` estándar de `pg` con `ssl: { ca, cert, key }`, todos cargados vía `fs.readFileSync` desde el `certificate.pem` combinado, y el mismo objeto `ssl` en `drizzle.config.ts`.
* **JDBC (Java):** la clave del cliente debe convertirse a formato PK8/DER y referenciarse en las propiedades SSL de la URL JDBC.

**Cómo solucionarlo:** vuelve a descargar el certificado desde la página de la base de datos en el dashboard (un archivo de certificado viejo o parcial es una causa común), confirma que la cadena de conexión use el protocolo/esquema con TLS habilitado para tu motor, y reinicia la base de datos si la acabas de crear.

Para crear y conectarte a una base de datos gestionada desde cero, consulta [Databases](/es/services/databases).

<Tip>Si el mensaje de error no coincide con nada de lo anterior, nuestro equipo de soporte puede ayudarte a diagnosticar el fallo de conexión exacto.</Tip>

## Contáctanos

Si continúas enfrentando **dificultades técnicas**, nuestro **equipo de soporte especializado** está disponible para ayudarte. [**Contáctanos**](https://squarecloud.app/es/support) y estaremos encantados de ayudarte a resolver cualquier problema — la calidad del soporte es una gran parte de por qué los desarrolladores califican a Square Cloud con [**4.9/5 en 402 reseñas**](https://www.trustpilot.com/review/squarecloud.app) en Google y Trustpilot.
