Se você trabalha com um servidor MySQL, eventualmente vai precisar conceder acesso remoto aos seus bancos de dados e tabelas. Por padrão, este serviço é configurado para funcionar apenas no localhost, ou seja, sem acesso externo. No artigo de hoje vamos aprender à configurar essa acessibilidade externa ao MySQL.

Parte 1: Abrindo as Portas

É bom lembrar que para funcionar no seu ambiente, você precisa estar com a porta 3306 (padrão de acesso externo do MySQL) aberta. Em cada serviço de hospedagem de servidores dedicados pode haver uma forma diferente de fazer isto, então não entraremos em detalhes nesta etapa, pois você provavelmente já sabe como o fazer (ou não).

Parte 2: Permitindo o Acesso

Na sua instalação padrão, o MySQL só aceitará conexões provenientes do ip 127.0.01 (localhost) e precisamos alterar isso. Abra o arquivo /etc/mysql/mysql.conf.d/mysqld.cnf e altere a linha que diz:

bind-address = 127.0.0.1

para

bind-address = 0.0.0.0

Salve o arquivo, feche e reinicie o serviço com o comando abaixo.

systemctl restart mysql.service

Parte 3: Concedendo Acesso ao Usuário

Agora precisamos definir quais usuários poderão se conectar ao nosso servidor de forma externa. No nosso caso, vamos dar acesso externo ao usuário root (que tem acesso à todos os bancos de dados). Para isso, siga os passos:

  1. Logue no seu servidor
  2. Execute o comando: mysql -u root -p
  3. Digite a senha do usuário root que você definiu na instalação do MySQL.
  4. Execute o comando: GRANT ALL ON nome_do_banco_de_dados.* TO ‘nome_do_usuario’@’%’ IDENTIFIED BY ‘senha_do_usuario’ WITH GRANT OPTION;
  5. Execute o comando: FLUSH PRIVILEGES;
  6. Saia do console MySQL com o comando exit;

Pronto! Seu MySQL estará acessível remotamente.

Bônus: Segurança em Primeiro Lugar

Tenha em mente que uma nova frente de ataque será aberta aos usuários maliciosos, que sempre podem encontrar maneiras de ultrapassar as primitivas padrões de segurança. Por isso, conceda acesso externo à usuários seletos e mantenha seu MySQL sempre atualizado.