Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conecte-se ao MySQL remotamente

Este é um tutorial avançado. Cuidado! Não podemos fornecer qualquer assistência para este processo nem podemos ajudar com quaisquer problemas causados ​​por ele. Certifique-se de fazer um backup completo do servidor antes de continuar!
À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:
  1. Usando um túnel SSH.
  2. 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 -p
Nã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.