Se você está trabalhando com um Banco de dados MySQL, então já está ciente dos desafios que enfrenta para manter seu banco de dados seguro. De tentativas de hacking de banco de dados usando injeções de SQL a ataques de força bruta, é difícil manter seus dados seguros, especialmente se você estiver trabalhando com um banco de dados remotamente.
Existem maneiras de configurar um servidor SQL para permitir conexões remotas , mas você precisa ter cuidado, pois permitir conexões remotas em um servidor MySQL pode tornar seu banco de dados um alvo fácil para hackers. Se você deseja permitir conexões remotas seguras com um banco de dados MySQL, aqui está o que você precisa saber.
Antes de você Começar
Antes de fazer qualquer alteração em seu banco de dados MySQL, é importante que você faça backup de seu banco de dados, especialmente se estiver trabalhando em um servidor de produção (um servidor em uso ativo). Quaisquer alterações feitas em seu banco de dados ou no servidor que o hospeda podem resultar em sérias perdas de dados se algo der errado.
Você também pode descobrir que alterações nas conexões de seu servidor podem impedir que você o acesse posteriormente. Se isso acontecer, pode ser necessário consultar um administrador do servidor para obter mais suporte. Uma boa ideia é testar todas as mudanças em um servidor MySQL executado localmente para verificar se suas mudanças funcionam antes de tentar remotamente.
Também é provável que se você estiver fazendo mudanças em um servidor remoto, você ' Precisarei de uma maneira segura de se conectar e fazer alterações. SSH (Secure Shell)costuma ser a melhor maneira de fazer isso, pois permite que você se conecte ao seu servidor remoto. Você também pode usar SSH para se conectar a servidores em sua rede local, como os hospedado em um Raspberry Pi.
Este guia o guiará pelas etapas para configurando o MySQL para permitir conexões remotas, mas você precisará garantir que tenha acesso direto ou remoto ao servidor que hospeda seu servidor MySQL primeiro.
Suponha que você não tenha acesso remoto ao seu servidor via SSH (por exemplo). Nesse caso, você não poderá configurar seu banco de dados MySQL para permitir conexões remotas diretamente, a menos que sua conta raiz do mySQL já permita conexões remotas. Portanto, você precisará estabelecer esta conexão antes de continuar.
Editando seu arquivo de configuração do MySQL
A primeira etapa na configuração do MySQL para permitir acesso remoto conexões é editar seu arquivo de configuração do MySQL. Nesse estágio, este guia presumirá que você já se conectou ao servidor, PC ou Mac que hospeda seu banco de dados mySQL remotamente e tem acesso ao console.
Alternativamente, você pode configurar um servidor MySQL local usando um terminal aberto no Mac ou Linux ou um editor de texto no Windows.
Os locais mencionados acima são os locais padrão para arquivos de configuração do MySQL. Se esses comandos não funcionarem, você precisará pesquisar os arquivos relevantes (my.cnf, mysqld.cnfou my.ini) manualmente para localizar o caminho do arquivo relevante.
Definindo um intervalo de IP de endereço de vinculação seguro
- Em seguida, os usuários de Linux e Mac podem reiniciar o MySQL digitando mysql.server stop && mysql.server startou mysql.server restart. Você pode precisar elevar o comando usando sudo (por exemplo. sudo mysql.server restart) e usar o caminho apropriado para o arquivo mysql.server (por exemplo. / usr /local/bin/mysql.server).
Se não tiver certeza do nome do serviço correto no Windows, digite net startpara localizá-lo. Se você não conseguir recarregar sua configuração, reinicie o servidor e recarregue o MySQL manualmente (se necessário).
Configurando seus firewalls
Neste estágio, seu banco de dados MySQL deve permitir conexões remotas de dispositivos usando o endereço IP definido como o valor bind-addressem seu arquivo de configuração MySQL (ou de todos os dispositivos se você definir este valor como 0.0.0.0em vez). No entanto, as conexões ainda serão bloqueadas por seu dispositivo ou firewall de rede.
A maioria dos servidores e PCs usam um firewall para bloquear conexões, a menos que o acesso a uma porta específica seja concedido. As etapas para configurar isso variam, dependendo se você está executando o MySQL no Windows ou Linux. Os firewalls do Mac são desabilitados por padrão, então você não deve precisar realizar nenhuma etapa adicional aqui.
Configurar firewalls do Linux
Muitos servidores Linux usam iptablescomo o utilitário de firewall padrão. Você pode configurá-lo seguindo as etapas abaixo.
Se iptables não for a ferramenta de firewall padrão para sua distribuição Linux, você precisará consultar o manual do usuário de sua distribuição para obter mais informações. Se certos pacotes (como netfilter-persistent) não estiverem disponíveis, use a ferramenta de repositório de software de sua distribuição para instalá-lo (por exemplo, sudo apt install netfilter-persistent).
Configurar Firewalls do Windows
Se estiver usando um PC ou servidor Windows para hospedar seu banco de dados, você pode configurar seu firewall seguindo estas etapas:
Se você tiver problemas para se conectar, repita as etapas acima , certificando-se de criar uma nova regra de saídaem suas configurações de firewall usando os mesmos detalhes (porta 3306, etc). Você também pode precisar configurar seu roteador de rede local para abra as portas bloqueadas necessárias para permitir conexões de entrada e saída para seu banco de dados.
Conectando-se a um servidor remoto usando MySQL
Depois de configurar seu banco de dados MySQL para permitir conexões remotas, você precisará realmente estabelecer uma conexão com ele. Você pode fazer isso usando o comando mysql(mysql.exeno Windows) de um terminal ou janela do PowerShell.
Se você estiver executando o Windows, você precisará certificar-se de que MySQL está instalado localmente antes de começar. Usuários de Mac podem instalar MySQL usando homebrew a partir do terminal (brew install mysql), enquanto usuários de Linux podem usar seu repositório de aplicativo local (por exemplo. sudo apt install mysql) para instalar os pacotes necessários.
Conectando-se ao MySQL no Linux ou Mac
Conectando ao MySQL no Windows
Se isso não funcionar, conecte-se ao servidor ou PC que hospeda seu servidor MySQL usando SSH (ou acesse-o diretamente) usando estas etapas e usando o argumento -h localhost. Você pode então criar uma conta de usuário adequada seguindo as etapas abaixo.
Permitindo acesso de usuário remoto a um banco de dados MySQL
Neste ponto, você deve estar capaz de se conectar ao servidor MySQL remotamente usando a conta de usuário root do servidor ou outra conta de usuário com privilégios elevados. Como esse nível de acesso não é seguro, você pode preferir criar uma conta mais restrita para acessar seu banco de dados MySQL.
Esta conta terá acesso limitado ao seu servidor MySQL, permitindo que ele interaja apenas com bancos de dados selecionados. Não será possível fazer alterações mais sérias, como acessar outros dados do banco de dados, criar novas contas de usuário, etc.
Você precisará ter a capacidade de entrar em seu servidor MySQL remotamente. Se você não puder usar sua conta root remotamente, precisará acessar o shell do servidor usando o comando mysqlpor meio de uma conexão SSH remota ou acessando diretamente o PC ou servidor que hospeda o servidor.
Com o acesso concedido, use as etapas da seção acima para conectar-se ao servidor remotamente usando sua nova conta (por exemplo, mysql -u nome de usuário -h XXXX: XXXX -p).
Protegendo seus dados de banco de dados
Esteja você trabalhando com MySQL ou outro tipo de SQL banco de dados, é importante manter suas conexões seguras para manter a segurança de seus dados. Uma boa maneira de fazer isso é gerar chaves SSH para acesso remoto para o seu servidor, em vez de confiar em senhas desatualizadas (e facilmente adivinhadas).
Se você está preocupado com a perda de dados, pode facilmente faça backup do seu banco de dados online. A maioria dos bancos de dados é executada em servidores Linux — você pode automatizar um backup de arquivos Linux facilmente. Se você estiver executando o MySQL no Windows, pode configurar um sistema de backup automático para Windows semelhante, permitindo que você restaure seus dados em caso de emergência.