Como permitir conexões remotas ao MySQL


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.

Índice

    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.

    1. Para começar, use o seu editor de texto de console preferido para editar seu arquivo de banco de dados MySQL. No Linux, digite sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfem um terminal ou janela SSH para editar este arquivo usando o editor nano(assumindo seu banco de dados MySQL está no local padrão) .
      1. Se você estiver executando o Windows, abra o Explorador de arquivos e acesse a pasta que contém a instalação do MySQL (por exemplo, C: / Arquivos de programas / MySQL / MySQL Server 8.0). Abra o arquivo my.iniusando seu editor de texto padrão (por exemplo, Bloco de notas) clicando duas vezes na entrada. Se não estiver lá, crie o arquivo primeiro.
        1. No Mac, abra uma janela de terminal e digite sudo nano /usr/local/etc/my.cnf. Este é o arquivo de configuração padrão do MySQL se você instalou o MySQL usando homebrew.
        2. 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

          1. Assim que você abriu o arquivo de configuração do MySQL para o seu servidor, use a tecla de seta do teclado para chegar à seção bind-addressdo arquivo. Este intervalo de IP limita as conexões com seu banco de dados, que normalmente é definido para permitir conexões apenas da máquina local ou servidor usando 127.0.0.1
            1. Se você deseja configurar seu banco de dados MySQL para permitir conexões de dispositivos usando sua conexão de Internet atual, encontre seu endereço IP público primeiro, depois substitua 127.0.0.1com esse endereço IP. Alternativamente, substitua-o por um endereço IP para o dispositivo ou servidor do qual você deseja permitir conexões.
              1. Em algumas circunstâncias , você pode permitir todasas conexões remotas com um banco de dados MySQL. Isso acarreta risco extremoe não deve ser usado em um servidor de produção. Se desejar permitir isso, no entanto, substitua 127.0.0.1por 0.0.0.0
                1. Anote o valor da portana seção Configurações básicas. Isso será necessário na próxima seção. Se não estiver visível, o valor padrão será usado, que é a porta 3306. Você pode adicionar sua própria porta digitando port = xxxxem uma nova linha, substituindo xxxxpor um valor de porta adequado.
                  1. Depois de configurar o endereço de ligaçãoem seu arquivo de configuração do MySQL, salve o arquivo. Se você estiver no Linux, selecione Ctrl + Oe Ctrl + Xpara fazer isso. No Mac, selecione Command + Oe Command + X. Os usuários do Windows podem salvar selecionando Arquivo>Salvar
                    1. 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).
                    1. Se o comando acima não funcionar, tente sudo service mysql restartem vez disso.
                      1. Para reiniciar o MySQL no Windows, abra uma nova janela do PowerShell clicando com o botão direito no menu Iniciar e selecionando Windows PowerShell (Admin). Na janela do PowerShell, digite net stop mysql80seguido por net start mysql80, substituindo mysql80pelo nome de serviço correto em seu PC.
                      2. 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.

                        1. Abra um terminal ou conexão SSH e digite sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACEITAR. Substitua XXXXpelo endereço IP do dispositivo do qual deseja permitir conexões MySQL dee substitua YYYYpelo valor da porta correspondente de sua configuração MySQL (por exemplo. 3306
                          1. Isso configurará o firewall temporariamente. Se você estiver usando um servidor Linux baseado em Debian ou Ubuntu, torne essa alteração permanente digitando sudo netfilter-persistent savee sudo netfilter-persistent reloadno terminal ou SSH .
                          2. 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:

                            1. Clique com o botão direito do mouse no menu Iniciar e selecione Executar
                              1. Na caixa Executar, digite wf.msce selecione OK.
                                1. Na janela Windows Defender, selecione Regras de entrada >Nova Regra.
                                  1. No Assistente de Nova Regra de Entradajanela, selecione Porta>Próximo
                                    1. No próximo menu, selecione TCPnas opções, digite 3306(ou qualquer valor de porta listado em seu arquivo de configuração MySQL) e selecione Próximo
                                      1. No menu Ação, deixe a opção padrão para Permitir a conexãohabilitada, em seguida, selecione Próximo
                                        1. Confirme que você deseja que a regra se aplique a todos os tipos de rede e selecione Avançar.
                                          1. Digite um nome descritivo para a regra (por exemplo, MySQL) na porta fornecida e selecione Concluirpara adicioná-lo à sua lista de regras de firewall.
                                          2. 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

                                            1. Para conectar-se ao servidor MySQL remoto no Mac ou Linux, abra uma nova janela de terminal e digite mysql -u username -h XXXX: XXXX -p. Substitua XXXX: XXXXpelo endereço IP e número da porta do servidor remoto (por exemplo, 100.200.100.200:3306) e nome de usuáriopelo seu nome de usuário MySQL.
                                              1. Quando solicitado, confirme sua senha. Se a conexão for bem-sucedida, uma mensagem de sucesso aparecerá no terminal.
                                              2. Conectando ao MySQL no Windows

                                                1. Para conectar para um servidor MySQL remoto no Windows, abra uma nova janela do PowerShell clicando com o botão direito do mouse no menu Iniciar e selecionando Windows PowerShell (Admin).
                                                  1. Na nova janela do PowerShell, digite cd “C: \ Arquivos de programas \ MySQL \ MySQL Workbench 8.0 \” para inserir a pasta correta, substituindo este diretório com o diretório de instalação correto em seu PC. Por exemplo, se sua versão do MySQL é 8.0.1, use a pasta MySQL Workbench 8.0.1.
                                                    1. A partir daí, digite . \ mysql.exe -u nome de usuário -h X.X.X.X: XXXX -p. Substitua XXXX: XXXXpelo endereço IP e número da porta do servidor remoto (por exemplo, 100.200.100.200:3306) e nome de usuáriopor um nome de usuário MySQL que permite acesso remoto (como root). Siga todas as instruções adicionais na tela.
                                                    2. Forneça sua senha, quando solicitado, para concluir o processo de login e acessar seu banco de dados MySQL remotamente.
                                                    3. 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.

                                                      1. Em seu shell MySQL remoto (usando a ferramenta mysql), digite CRIAR USUÁRIO “nome de usuário” @ ”xxxx” IDENTIFICADO POR “senha”;e selecione Enter. Substitua nome de usuáriopelo nome de usuário que deseja criar, xxxxpelo endereço IP a partir do qual deseja se conectar e senhapor uma senha adequada.
                                                        1. Você precisará conceder à sua nova conta as permissões necessárias. Para fazer isso, digite GRANT ALL ON databasename. * TO username @ ”x.x.x.x”;e substitua nome do banco de dados, nome de usuárioe x.x.x.xpelos detalhes corretos. Se desejar, substitua nome do banco de dadospor *para conceder acesso a todos os bancos de dados.
                                                        2. 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.

                                                          Postagens relacionadas:


                                                          9.08.2021