Desenvolvimento e bases de dados

MySQL remoto

Revisto a 6 min de leitura MySQL acesso remoto

Um cliente de bases de dados permite ligar a uma base de dados alojada no alojamento a partir do seu computador, sem ter de trabalhar a partir do cPanel ou do phpMyAdmin.

Os dados de ligação ao MySQL para este tipo de aplicações são:

  • Servidor: o nome de anfitrião do servidor, o seu IP ou um domínio que aponte diretamente para o alojamento
  • Porta: 3306
  • Utilizador: o utilizador MySQL
  • Palavra-passe: a palavra-passe do utilizador MySQL
  • Base de dados: nome da base de dados (sobre a qual o utilizador deve ter permissões)

Uma aplicação alojada na mesma conta deve utilizar localhost como servidor MySQL e não precisa de ativar o acesso remoto. A autorização descrita a seguir só é necessária quando a ligação parte de outro servidor, de um escritório ou do seu próprio computador.

Não utilize como servidor um domínio que aponte para outra plataforma ou que esteja oculto atrás de um proxy como o Cloudflare: esse tráfego não é reencaminhado para a porta 3306 do alojamento. Nesse caso, utilize o nome de anfitrião do servidor ou o seu IP.

Autorizar uma ligação MySQL remota

Mesmo que os dados estejam corretos, o servidor rejeitará uma ligação externa se o seu endereço de origem não estiver autorizado.

Para permitir o acesso remoto, abra Remote Database Access no cPanel e adicione o IP a partir do qual se liga. Em versões anteriores do cPanel, esta secção chamava-se Remote MySQL.

Depois, verifique que o utilizador MySQL está associado à base de dados e tem apenas as permissões de que precisa. Autorizar um IP permite que essa origem tente ligar-se, mas não substitui o utilizador e a palavra-passe.

É possível fechar a porta MySQL 3306?

Nos nossos planos de alojamento cloud, o MySQL é um serviço gerido comum ao nó e a firewall é configurada ao nível do servidor. Por esse motivo, não é possível fechar a porta 3306 para uma só conta, alterá-la nem aplicar uma regra de rede personalizada a partir do cPanel.

A lista de origens autorizadas de Remote Database Access controla os acessos que gere a partir da conta. O servidor pode ter autorizações adicionadas pela administração: se vir uma entrada desconhecida ou se ela reaparecer depois de a apagar, contacte o suporte. O facto de a porta responder não demonstra que um utilizador se possa autenticar ou aceder a uma base de dados.

Se a política de segurança do seu projeto exigir que a porta não seja acessível a partir da Internet, uma firewall exclusiva ou controlo total sobre o MySQL, precisará de uma infraestrutura administrada por si, como um VPS ou um servidor dedicado. A Hostsuar não oferece atualmente esses serviços; pode consultar as diferenças entre um VPS e o nosso alojamento cloud antes de escolher o ambiente.

Recomendações de segurança

Autorize apenas o IP público exato a partir do qual se vai ligar e elimine as autorizações que já não utiliza. Se precisar de um intervalo empresarial, confirme antes o formato aceite pela versão do MySQL e do cPanel: nem todas aceitam a mesma notação. Não utilize %: exporia o acesso MySQL a tentativas a partir de qualquer origem e deixaria a palavra-passe como única barreira.

Se o seu IP for dinâmico ou se vários computadores tiverem de aceder, ligue-se primeiro através de uma VPN com saída fixa ou crie um túnel SSH, sem autorizar cada computador em Remote Database Access. Utilize também um utilizador diferente para cada aplicação ou pessoa, limitado à base de dados e às operações estritamente necessárias, e elimine a autorização remota quando o trabalho terminar.

Verificar a ligação e proteger o tráfego

Autorizar um IP não cifra a ligação. Utilize TLS com verificação do certificado quando o servidor e o seu cliente o suportarem, ou o túnel SSH para MySQL.

Se houver um timeout, verifique a saída de rede, o anfitrião e o IP público a partir do qual se liga. Se aparecer Access denied, reveja o nome completo do utilizador, a sua palavra-passe e a autorização de origem. Se a ligação funcionar mas não vir a base de dados, reveja a associação e os privilégios no cPanel. Não alargue a autorização a % para resolver um erro de credenciais.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.