Às vezes, pode ser útil habilitar conexões remotas ao MySQL. Isso permite que você se conecte diretamente ao MySQL em um de seus servidores a partir de um aplicativo ou cliente MySQL executado em um sistema diferente.
Existem duas maneiras diferentes de acessar o MySQL remotamente:
- Usando um túnel SSH.
- Ativando o acesso direto ao MySQL de sistemas remotos.
Conectando ao MySQL usando um túnel SSH
Usar um túnel SSH é a opção mais fácil e segura para acesso remoto ao MySQL para fins de desenvolvimento. Um túnel SSH fará com que pareça que o MySQL está sendo executado em seu sistema local. O SSH faz isso abrindo uma porta local e transferindo perfeitamente toda a comunicação dessa porta para o MySQL em execução em seu servidor.
Para criar um túnel SSH do Mac ou Linux, você pode executar o comando SSH da linha de comando com o
-L
para habilitar o encaminhamento de porta local. ssh -L localhost:2000:localhost:3306 serverpilot@SERVER_IP_ADDRESS
No exemplo acima, o SSH abriria a porta 2000 em seu sistema local e você poderá se comunicar com o MySQL conectando-se a essa porta local. Por exemplo, você pode se conectar usando o comando MySQL:
mysql --protocol=tcp --host=localhost --port=2000 --user=DB_USER_NAME -pNão deixe de fora --protocol=tcp ou o MySQL pode ignorar silenciosamente o --host e --port opções.
Você também pode criar túneis SSH no Windows usando PuTTy, o popular cliente SSH do Windows.
Ativando o acesso direto ao MySQL a partir de sistemas remotos
Aviso! Permitir acesso direto ao MySQL aumenta o risco de seu servidor ser comprometido por invasores. Aviso! O MySQL não usa conexões seguras por padrão. O manual do MySQL tem mais informações sobre SSL com MySQL.Etapa 1:configurar o MySQL para escutar em todas as interfaces.
Por padrão, o MySQL só escuta conexões em localhost , então o primeiro passo é reconfigurar o MySQL em seu servidor de banco de dados para escutar em todas as interfaces. Para fazer isso, faça login no seu servidor como root .
Se você estiver executando um servidor Ubuntu 16.04 ou 18.04, edite este arquivo:
/etc/mysql/mysql.conf.d/mysqld.cnf
Para servidores 14.04 ou 12.04, edite este arquivo:
/etc/mysql/my.cnf
Encontre a seguinte linha em qualquer arquivo:
bind-address = 127.0.0.1
Altere o endereço de ligação para 0.0.0.0 :
bind-address = 0.0.0.0
Salve este arquivo e execute o seguinte comando como root :
sudo service mysql restart
Etapa 2:abra a porta TCP 3306 no firewall do seu servidor.
O firewall configurado pelo ServerPilot bloqueia todo o acesso ao MySQL de fora do seu servidor. Portanto, você precisará personalizar seu firewall para permitir o acesso ao MySQL.
Para abrir o acesso ao MySQL de fora do seu servidor, veja nosso artigo sobre como personalizar seu firewall.
Etapa adicional para EC2:permitir a porta TCP 3306 em seus grupos de segurança.
Se este for um servidor EC2, você também deverá permitir a porta 3306 nos grupos de segurança do seu servidor.
Configure seus aplicativos para usar o host remoto.
Depois de configurar o servidor MySQL remoto, você desejará configurar seu(s) aplicativo(s) para usar esse host para transações de banco de dados. Isso normalmente é configurado no arquivo de configuração do aplicativo e usaremos o WordPress como nosso exemplo.
Abra o arquivo wp-config.php do aplicativo.
Nesta linha:
define('DB_HOST', 'localhost');
Altere 'localhost' para o endereço IP do seu servidor MySQL remoto ou nome completo do host. O endereço IP normalmente será uma escolha mais rápida e confiável, pois não depende da resolução do DNS.
Salve o arquivo e saia, e está tudo pronto! Agora você pode testar seu aplicativo para verificar se está funcionando corretamente.