O site de dados do seu site apenas escuta no endereço de loopback do próprio servidor, pelo que uma ferramenta de ambiente de trabalho como o TablePlus, Sequel Ace, DBeaver ou MySQL Workbench não consegue contactá-lo diretamente. Um túnel SSH dá a essas ferramentas uma porta local que é encaminhada para a base de dados, e é assim que se consegue uma interface gráfica adequada aos seus dados sem expor o MySQL à internet.
Porque É Necessário um Túnel
Abra Websites, clique no site e depois em Base de dados. O cartão Detalhes de ligação mostra o anfitrião como 127.0.0.1 e a porta como 3306. Isto não é um valor de preenchimento: a base de dados aceita genuinamente apenas ligações da máquina onde é executada. Nada na internet pública consegue alcançar a porta 3306, o que elimina toda uma categoria de ataques.
Um túnel SSH fecha essa lacuna com segurança. O seu cliente SSH abre uma porta no seu portátil, encripta tudo o que lhe envia, e entrega-o à base de dados a partir de dentro do servidor, exatamente como se um processo local se tivesse ligado.

O Que Precisa Primeiro
Um túnel é uma ligação SSH, pelo que precisa de ter uma chave SSH registada no site antes de qualquer um destes passos funcionar. Siga primeiro Adicionar Chaves SSH a um Site e depois volte aqui.
Reúna quatro elementos:
- Anfitrião SSH, porta e nome de utilizador, em Definições, depois Chaves SSH, no cartão Detalhes de ligação.
- Nome da base de dados, utilizador e palavra-passe, em Base de dados. Clique no ícone do olho para revelar a palavra-passe e no ícone de cópia para a colocar na área de transferência.
Se o separador Database indicar No database provisioned for this site type, este site não tem uma base de dados. Sites estáticos e alguns sites Node.js são criados sem base de dados.
Abrir o Túnel a Partir de um Terminal
A forma geral é: encaminhar uma porta local para 127.0.0.1:3306 do outro lado da ligação SSH.
ssh -N -L 3307:127.0.0.1:3306 <ssh-username>@<ssh-host> -p <ssh-port>
-L 3307:127.0.0.1:3306abre a porta 3307 na sua máquina e encaminha-a para a porta 3306 na interface de loopback do servidor.-Nindica para não executar uma shell, apenas manter o túnel aberto.- Acrescente
-i /path/to/keyse a chave deste site não for a sua chave predefinida.
Deixe essa janela de terminal em execução. Enquanto estiver aberta, 127.0.0.1:3307 no seu portátil é a base de dados do site.
Use a porta 3307 localmente em vez de 3306. Se tiver o MySQL ou o MariaDB instalado na sua própria máquina, esta já está a usar a porta 3306, e o túnel não conseguirá associar-se, resultando num erro de "endereço já em uso". Qualquer porta local livre funciona.
Apontar o Seu Cliente de Base de Dados Para o Túnel
No seu cliente gráfico, crie uma ligação MySQL simples com estes valores:
| Campo | Valor |
|---|---|
| Anfitrião | 127.0.0.1 |
| Porta | 3307 (a porta local que encaminhou) |
| Utilizador | O Username do separador Database |
| Palavra-passe | A Password do separador Database |
| Base de dados | O nome em Base de dados do separador Database |
Não coloque o anfitrião SSH no campo Host. No que diz respeito ao cliente, este está a falar com uma base de dados na sua própria máquina.
Clientes Com um Separador SSH Incorporado
O TablePlus, Sequel Ace, DBeaver e MySQL Workbench conseguem todos gerir o túnel por conta própria, o que evita manter um terminal aberto. Preencha dois grupos de campos:
- Secção SSH: anfitrião, porta, nome de utilizador e ficheiro de chave privada a partir da página Chaves SSH.
- Secção da base de dados: anfitrião
127.0.0.1, porta3306, mais o nome da base de dados, o utilizador e a palavra-passe do separador Database.
Quando o cliente cria o túnel, use 3306 na secção da base de dados em vez da sua porta local encaminhada. O cliente está a ligar-se do ponto de vista do servidor, pelo que vê a porta real.
Usar o phpMyAdmin em Alternativa
Se só precisar de dar uma vista de olhos rápida a uma tabela, não precisa de um túnel de todo. O separador Database tem um cartão phpMyAdmin com um botão Abrir phpMyAdmin. Este autentica-o através do KPanel, pelo que não há nenhuma palavra-passe separada a memorizar, e abre num novo separador já apontado para a base de dados deste site.
O phpMyAdmin é a opção mais rápida para navegar, executar uma consulta pontual ou verificar um valor. Um cliente de ambiente de trabalho através de um túnel é melhor para exportações grandes, trabalho de esquema e tudo o que queira automatizar com scripts. Consulte Usar o phpMyAdmin para a via do navegador.
Executar Consultas e Dumps Através do Túnel
Com o túnel aberto, as ferramentas de linha de comandos padrão funcionam normalmente, apontadas para a sua porta local encaminhada:
mysql -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name>
mysqldump -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name> > backup.sql
Um dump manual é uma cópia de conveniência, não uma estratégia de cópias de segurança. Está apenas tão atualizado quanto o momento em que o executou, e fica guardado no portátil a partir do qual o executou. A KapsuleHost já efetua cópias de segurança diárias automáticas do site, mantidas durante 30 dias. Consulte Efetuar uma Cópia de Segurança antes de confiar num ficheiro .sql local.
Resolução de Problemas
"Address already in use" ao abrir o túnel. Algo na sua máquina já está a usar essa porta local. Escolha outra, por exemplo -L 3399:127.0.0.1:3306, e altere a porta no seu cliente para corresponder.
"Connection refused" do cliente de base de dados. O túnel não está ativo. Verifique se o terminal SSH ainda está em execução e não apresentou nenhum erro, e se a porta no seu cliente corresponde à porta local no argumento -L.
O SSH liga-se mas o cliente continua a atingir o tempo limite. Confirme que encaminhou para 127.0.0.1:3306 e não para o nome de anfitrião público. Encaminhar para o nome público pede ao servidor para alcançar a base de dados através da internet, o que é exatamente o que está bloqueado.
"Access denied for user". O início de sessão SSH foi bem-sucedido, mas as credenciais do MySQL estão erradas. Copie novamente o nome de utilizador e a palavra-passe do separador Database usando os ícones de cópia em vez de os voltar a escrever, e verifique se está a ligar-se ao nome de base de dados correto.
Permission denied (publickey) antes sequer de chegar ao MySQL. Isso é a camada SSH, não a base de dados. Percorra a secção de resolução de problemas em Adicionar Chaves SSH a um Site.
Próximos Passos
- Carregar Ficheiros Com SFTP usa as mesmas credenciais SSH para transferência de ficheiros.
- Usar o phpMyAdmin para trabalho de base de dados através do navegador.
- Restaurar a Partir de uma Cópia de Segurança caso uma consulta tenha ido mais longe do que pretendia.