Como permitir conexões remotas com MySQL

Como permitir conexões remotas com MySQL

Se você está trabalhando com um banco de dados MySQL, já está ciente dos desafios que enfrenta para manter seu banco de dados seguro. De tentativas de hackers 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 e seguras para um banco de dados MySQL, eis o que você precisará saber.

Índice

    Este guia o levará através das etapas para configurar 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 ROOT MYSQL já permita conexões remotas. Então, você precisará estabelecer essa conexão antes de poder prosseguir.

    Editando seu arquivo de configuração MySQL

    A primeira etapa na configuração do MySQL para permitir conexões remotas é editar seu arquivo de configuração MySQL. Nesta fase, este guia assumirá que você já se conectou ao servidor, PC ou Mac hospedando seu banco de dados MySQL remotamente e tem acesso ao console.

    Como alternativa, você pode configurar um servidor MySQL local usando um terminal aberto no Mac ou Linux ou um editor de texto no Windows.

    1. Para iniciar, use seu editor de texto preferido do console para editar seu arquivo de banco de dados MySQL. No Linux, digite sudo nano/etc/mysql/mysql.conf.d/mysqld.CNF em uma janela de terminal ou ssh para editar este arquivo usando o Nano Editor (assumindo que seu banco de dados MySQL está no local padrão).
    1. Se você estiver executando o Windows, abra o arquivo explorador e acesse a pasta que contém sua instalação MySQL (por exemplo,. C:/Arquivos de programas/mysql/mysql servidor 8.0). Abra o meu.ini Arquivo usando 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 do terminal e digite sudo nano/usr/local/etc/meu.CNF. Este é o arquivo de configuração padrão para MySQL se você instalou o MySQL usando o Homebrew.

    Os locais mencionados acima são os locais padrão para os arquivos de configuração do MySQL. Se esses comandos não funcionarem, você precisará procurar os arquivos relevantes (meu.CNF, mysqld.CNF, ou meu.ini) manualmente para localizar o caminho do arquivo relevante.

    Definindo um intervalo de IP de endereço de ligação seguro

    1. Depois de abrir o arquivo de configuração do MySQL para o seu servidor, use a tecla de seta do teclado para alcançar o ABRIBEÇÃO DE BINDA seção do arquivo. Esse intervalo de IP limita as conexões ao seu banco de dados, que normalmente é definido para permitir apenas conexões da máquina ou servidor local 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 atual na Internet, encontre seu endereço IP público primeiro e depois substitua 127.0.0.1 Com esse endereço IP. Como alternativa, substitua -o por um endereço IP para o dispositivo ou servidor que você deseja permitir conexões de.
    1. Em algumas circunstâncias, você pode querer permitir todos conexões remotas com um banco de dados MySQL. Isso carrega risco extremo e não deve ser usado em um servidor de produção. Se você deseja permitir isso, no entanto, substitua 127.0.0.1 com 0.0.0.0.
    1. Anote o porta valor no Configurações básicas seção. Isso será necessário na próxima seção. Se não estiver visível, o valor padrão será usado, que é porto 3306. Você pode adicionar sua própria porta digitando porta = xxxx em uma nova linha, substituindo xxxx com um valor de porta adequado.
    1. Depois de configurar o ABRIBEÇÃO DE BINDA No seu arquivo de configuração MySQL, salve o arquivo. Se você estiver no Linux, selecione Ctrl + o e Ctrl + x para fazer isso. No Mac, selecione Comando + o e Comando + x. Os usuários do Windows podem economizar selecionando Arquivo > Salvar.
    1. Em seguida, os usuários de Linux e Mac podem reiniciar o MySQL digitando mysql.Stop de servidor && mysql.Iniciar o servidor ou mysql.Servidor Reiniciar. Pode ser necessário elevar o comando usando sudo (por exemplo. sudo mysql.Servidor Reiniciar) e use o caminho apropriado para o MySQL.Arquivo de servidor (por exemplo. /usr/local/bin/mysql.servidor).
    1. Se o comando acima não funcionar, tente SUDO Service MySQL Reiniciar em vez de.
    1. Para reiniciar o MySQL no Windows, abra uma nova janela do PowerShell clicando com o botão direito do mouse no menu Iniciar e selecionando Windows PowerShell (Admin). Na janela PowerShell, digite Net Stop MySQL80 seguido pela Iniciar líquido MySQL80, substituindo MySQL80 com o nome de serviço correto no seu PC.

    Se você não tem certeza do nome de serviço correto no Windows, digite Início da rede Para encontrar isso.Se você não puder recarregar sua configuração, reinicie seu servidor e recarregue o MySQL manualmente (se necessário).

    Configurando seus firewalls

    Nesta fase, seu banco de dados MySQL deve permitir conexões remotas de dispositivos usando o endereço IP definido como o ABRIBEÇÃO DE BINDA valor no seu arquivo de configuração MySQL (ou de todos os dispositivos se você definir esse valor para 0.0.0.0 em vez de). No entanto, as conexões ainda serão bloqueadas pelo seu dispositivo ou firewall de rede.

    A maioria dos servidores e PCs usa um firewall para bloquear as conexões, a menos que o acesso a uma porta específico seja concedido. As etapas para configurar isso variarão, dependendo se você está executando o MySQL no Windows ou Linux. Os firewalls do Mac estão desativados por padrão, portanto, você não precisa concluir nenhuma etapa adicional aqui.

    Configure firewalls do Linux

    Muitos servidores Linux usam iptables Como 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 x.X.X.X -dport aaaa -j Aceitar. Substituir X.X.X.X Com o endereço IP do dispositivo que você deseja permitir conexões MySQL de, e substitua AAA Com o valor da porta correspondente do seu arquivo de 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 mudança permanente digitando SUDO NETFILTER-PERSISTENT e Recarrega de Sudo Netfilter-Persistent no terminal ou na janela SSH.

    Se iptables não for a ferramenta de firewall padrão para sua distribuição Linux, você precisará consultar o manual do usuário da sua distribuição para obter mais informações. Se determinados pacotes (como Netfilter-Persistent) não estão disponíveis, use a ferramenta de repositório de software da sua distribuição para instalá -la (por exemplo. sudo apt install netfilter-persistente).

    Configure firewalls do Windows

    Se você estiver usando um PC ou servidor Windows para hospedar seu banco de dados, poderá configurar seu firewall usando estas etapas:

    1. Clique com o botão direito do mouse no menu Iniciar e selecionar Correr.
    1. No Correr caixa, tipo wf.MSc e selecione OK.
    1. No Windows Defender Janela, selecione Regras de entrada > Nova regra.
    1. No Novo assistente de regras de entrada Janela, selecione Porta > Próximo.
    1. No próximo menu, selecione TCP Das opções, digite 3306 (ou qualquer valor da porta estiver listado no seu arquivo de configuração MySQL), depois selecione Próximo.
    1. No Ação menu, deixe a opção padrão para Permitir a conexão habilitado e selecione Próximo.
    1. Confirme que deseja que a regra se aplique a todos os tipos de rede e selecione Próximo.
    1. Digite um nome descritivo para a regra (por exemplo. Mysql) na porta fornecida, depois selecione Terminar Para adicioná -lo à sua lista de regras de firewall.

    Se você tiver problemas para se conectar, repita essas etapas acima, certifique -se de criar um novo regra de saída Em suas configurações de firewall, usando os mesmos detalhes (porta 3306, etc). Você também pode precisar configurar o roteador de rede local para abrir as portas bloqueadas necessárias para permitir conexões de entrada e saída ao 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 mysql comando (mysql.exe no Windows) de uma janela de terminal ou powershell.

    Se você estiver executando o Windows, precisará garantir que o MySQL esteja instalado localmente antes de começar. Os usuários de Mac podem instalar o MySQL usando o homebrew do terminal (Brew Instale o MySQL), enquanto os usuários do Linux podem usar seu repositório de aplicativos 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 seu MySQL Server remoto no Mac ou Linux, abra uma nova janela do terminal e digite Mysql -u Nome de usuário -h x.X.X.X: xxxx -p. Substituir X.X.X.X: xxxx com o endereço IP do servidor remoto e o número da porta (por exemplo. 100.200.100.200: 3306) e nome de usuário com 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.

    Conectando -se ao MySQL no Windows

    1. Para conectar-se a 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 entrar na pasta correta, substituindo este diretório pelo diretório de instalação correto no seu PC. Por exemplo, se sua versão do MySQL for 8.0.1, use o MySQL Workbench 8.0.1 pasta em vez disso.
    1. De lá, tipo .\ mysql.exe -u nome de usuário -h x.X.X.X: xxxx -p. Substituir X.X.X.X: xxxx com o endereço IP do servidor remoto e o número da porta (por exemplo. 100.200.100.200: 3306) e nome de usuário com um nome de usuário MySQL que permite acesso remoto (como raiz). Siga quaisquer instruções adicionais na tela.
    2. Forneça sua senha, quando solicitado, a concluir o processo de inscrição e acesse seu banco de dados MySQL remotamente.

    Se isso não funcionar, conecte -se ao servidor ou PC que hospeda seu servidor MySQL usando SSH (ou acesse -o diretamente) usando essas etapas e usando o -h localhost argumento. Você pode criar uma conta de usuário adequada seguindo as etapas abaixo.

    Permitindo acesso remoto ao usuário a um banco de dados MySQL

    Nesse ponto, você poderá se conectar ao seu servidor MySQL remotamente usando a conta de usuário root do seu 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 interagir com apenas bancos de dados selecionados. Não será capaz de fazer mudanças mais sérias, como acessar outros dados do banco de dados, criar novas contas de usuário, etc.

    Você precisará ter a capacidade de assinar seu servidor MySQL remotamente. Se você não puder usar sua conta raiz remotamente, precisará acessar o shell do seu servidor usando o mysql comando por meio de uma conexão SSH remota ou acessando diretamente o PC ou servidor que hospeda o servidor.

    1. No seu shell remoto mysql (usando o mysql ferramenta), digite Crie o usuário "Nome de usuário"@"x.x.x.X ”identificado por“ senha ”; e selecione Digitar. Substituir nome de usuário com o nome de usuário que você deseja criar, x.x.x.x com o endereço IP de onde você deseja se conectar e senha com uma senha adequada.
    1. Você precisará conceder sua nova conta com as permissões necessárias. Para fazer isso, digite Conceder tudo no nome do banco de dados.* Para o nome de usuário@”x.x.x.x ”; e substitua DatabaseName, nome de usuário, e x.x.x.x Com os detalhes corretos. Se desejar, substituir nome do banco de dados com * Para conceder acesso a todos os bancos de dados.

    Com o acesso concedido, use as etapas na seção acima para conectar -se ao seu servidor remotamente usando sua nova conta (por exemplo,. Mysql -u Nome de usuário -h x.X.X.X: xxxx -p).

    Protegendo os dados do seu banco de dados

    Esteja você trabalhando com o MySQL ou outro tipo de banco de dados SQL, é importante manter suas conexões seguras para manter sua segurança de dados. Uma boa maneira de fazer isso é gerar teclas SSH para acesso remoto ao seu servidor, em vez de depender de senhas desatualizadas (e facilmente adivinháveis).

    Se você estiver preocupado com a perda de dados, pode fazer backup facilmente do seu banco de dados online. A maioria dos bancos de dados é executada usando servidores Linux-você pode automatizar um backup de arquivo Linux facilmente. Se você estiver executando o MySQL no Windows, poderá configurar um sistema de backup automático semelhante para Windows, permitindo restaurar seus dados em uma emergência.