”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:- Abre la base de datos en el dashboard de Square Cloud y descarga los archivos de certificado (CA, cert, key, usualmente 2-3 campos).
- 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:Luego configura:Incluyeclient.p12dentro del zip de la aplicación y configuraDATABASE_URLen las variables de entorno de la aplicación; después, reinicia la aplicación.
- 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.
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 conMongoNetworkError: 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:
- Recomendado si necesitas Atlas externo: en Atlas → Network Access, agrega
0.0.0.0/0para 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). Consulta también MongoDB Atlas con una IP dinámica. - Recomendado en general: mueve la base de datos a una base de datos gestionada de Square Cloud 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 conECONNREFUSED, 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.
- 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:
398395y26548. Donde solo se admita lista blanca basada en IP (como MongoDB Atlas), usa0.0.0.0/0con credenciales fuertes en su lugar, ya que la IP de origen es dinámica. - Verifica host, puerto, usuario y contraseña contra lo que muestra el proveedor o el dashboard de Square Cloud.
- 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). - 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), nuncaredis://. Forma:rediss://default:PASSWORD@HOST:PORT.node-redistambién aceptasocket: { tls: true, ca: fs.readFileSync("certificate.pem") }; la libreríaredisde Python tomassl_ca_certs/ssl_certfile/ssl_keyfile(elcertificate.pemcombinado que descargas del dashboard funciona para todos). - Drizzle ORM (Postgres): un
Poolestándar depgconssl: { ca, cert, key }, todos cargados víafs.readFileSyncdesde elcertificate.pemcombinado, y el mismo objetosslendrizzle.config.ts. - JDBC (Java): la clave del cliente debe convertirse a formato PK8/DER y referenciarse en las propiedades SSL de la URL JDBC.
Guías relacionadas
- Crea y conecta una base de datos gestionada: la configuración completa, con ejemplos de conexión.
- Bases de datos: motores, versiones y lo que incluye cada plan.
- Variables de entorno: mantén la cadena de conexión fuera de tu código.
- Problemas de conexión, firewall y bloqueos de IP en el centro de ayuda.

