”Host ‘X’ is not allowed to connect to this MySQL server”
O que significa: o cliente MySQL rejeita a conexão com esta mensagem exata. Por que acontece: os bancos de dados hospedados da Square Cloud exigem SSL em toda conexão. Este erro aparece quando a conexão é tentada sem o certificado carregado, não por causa de um firewall/whitelist de host como a mensagem sugere. Como corrigir:- Abra o banco de dados no dashboard da Square Cloud e baixe os arquivos de certificado (CA, cert, key, geralmente 2-3 campos).
- Carregue-os na configuração SSL/TLS do seu cliente:
- Clientes GUI (MySQL Workbench, DBeaver, HeidiSQL): configure os arquivos de certificado baixados na aba SSL do cliente, depois conecte com o host/porta/usuário/senha exibidos no dashboard.
- Código (Prisma ORM): converta o cert+key do cliente em um
.p12:Depois defina:Envie oclient.p12dentro do zip da aplicação, definaDATABASE_URLnas variáveis de ambiente da aplicação e reinicie a aplicação.
- Verifique se o usuário e a senha correspondem ao que é exibido no dashboard, e reinicie o banco de dados se o certificado acabou de ser gerado.
MongoNetworkError e falhas de whitelist de IP do MongoDB Atlas
O que significa: um cluster MongoDB Atlas hospedado externamente (não um banco de dados gerenciado da Square Cloud) recusa a conexão comMongoNetworkError: connection ... closed, mesmo com as credenciais corretas.
Por que acontece: os containers de aplicação da Square Cloud usam um endereço IPv4 dinâmico que muda a cada reinício. Uma whitelist de IP do MongoDB Atlas configurada para um único IP estático vai funcionar até o próximo reinício, e então quebrar silenciosamente.
Como corrigir, escolha uma opção:
- Recomendado se você precisa do Atlas externo: no Atlas → Network Access, adicione
0.0.0.0/0para permitir conexões de qualquer IP, e compense a whitelist mais ampla com credenciais fortes (senha longa e aleatória, usuário de banco de dados dedicado, connection string mantida apenas em variáveis de ambiente). Veja também whitelist do MongoDB Atlas com IP dinâmico. - Recomendado no geral: mova o banco de dados para um banco de dados gerenciado da Square Cloud em vez de um cluster Atlas externo. Hospedar o banco de dados ao lado da aplicação elimina completamente o problema de whitelist de IP e oferece latência quase zero.
Timeout de conexão e ECONNREFUSED
O que significa: a aplicação trava até dar timeout, ou falha imediatamente comECONNREFUSED, ao tentar acessar um banco de dados.
Por que acontece, como regra geral:
- Um timeout (a conexão trava, sem rejeição imediata) geralmente significa que um firewall ou whitelist de IP no banco de dados de destino está bloqueando a conexão. Muitos provedores externos bloqueiam IPs de datacenter/estrangeiros por padrão.
- Um ECONNREFUSED imediato ou “authentication failed” geralmente significa que o host/porta está acessível, mas as credenciais, nome do banco, ou número da porta estão errados.
- Se estiver conectando a um provedor externo (não um banco de dados gerenciado da Square Cloud), permita os ASNs da Square Cloud no firewall de destino:
398395e26548. Onde apenas whitelist baseada em IP é suportada (como o MongoDB Atlas), use0.0.0.0/0com credenciais fortes em vez disso, já que o IP de origem é dinâmico. - Confira host, porta, usuário e senha contra o que o provedor ou o dashboard da Square Cloud mostram.
- Codifique em URL quaisquer caracteres especiais na connection string (
@,:,/, etc. dentro de uma senha vão quebrar o parsing se deixados sem codificação). - Verifique se o driver do provedor exige um parâmetro explícito
ssl=true(ou similar) na connection string.
Erros de conexão SSL/TLS
O que significa: o cliente falha ao estabelecer um handshake TLS com o banco de dados, ou falha logo depois com um erro que parece de autenticação mas na verdade é um problema de certificado. Por que acontece: os bancos de dados gerenciados da Square Cloud exigem SSL em toda conexão. Cada engine de banco de dados espera o certificado em um formato ligeiramente diferente:- Redis: o protocolo deve ser
rediss://(dois s), nuncaredis://. Formato:rediss://default:PASSWORD@HOST:PORT. Onode-redistambém aceitasocket: { tls: true, ca: fs.readFileSync("certificate.pem") }; a bibliotecaredisdo Python usassl_ca_certs/ssl_certfile/ssl_keyfile(ocertificate.pemcombinado baixado do dashboard funciona para todos eles). - Drizzle ORM (Postgres): um
Poolpadrão dopgcomssl: { ca, cert, key }, todos carregados viafs.readFileSynca partir docertificate.pemcombinado, e o mesmo objetosslnodrizzle.config.ts. - JDBC (Java): a chave do cliente deve ser convertida para o formato PK8/DER e referenciada nas propriedades SSL da URL JDBC.
Guias relacionados
- Crie e conecte um banco de dados gerenciado: a configuração completa, com exemplos de conexão.
- Bancos de dados: motores, versões e o que cada plano inclui.
- Variáveis de ambiente: mantenha a connection string fora do seu código.
- Problemas de conexão, firewall e bloqueios de IP na central de ajuda.

