MySql - Habilitar Usuário para receber conexão remota(rede)
Índice:
- Configurando o MySQL Server
- Concedendo acesso a um usuário de uma máquina remota
- Configurando o firewall
- Iptables
- UFW
- FirewallD
- Verificando as alterações
- Conclusão
Por padrão, o servidor MySQL escuta conexões apenas do host local, o que significa que ele pode ser acessado apenas por aplicativos em execução no mesmo host.
No entanto, em algumas situações, é necessário acessar o servidor MySQL a partir de um local remoto. Por exemplo, quando você deseja se conectar ao servidor MySQL remoto a partir do seu sistema local ou ao usar uma implantação de vários servidores em que o aplicativo está sendo executado em uma máquina diferente do servidor de banco de dados. Uma opção seria acessar o servidor MySQL através do SSH Tunnel e outra é configurar o servidor MySQL para aceitar conexões remotas.
Neste guia, seguiremos as etapas necessárias para permitir conexões remotas com um servidor MySQL. As mesmas instruções se aplicam ao MariaDB.
Configurando o MySQL Server
O primeiro passo é configurar o servidor MySQL para escutar um endereço IP específico ou todos os endereços IP na máquina.
Se o servidor e os clientes MySQL puderem se comunicar através de uma rede privada, a melhor opção é configurar o servidor MySQL para escutar apenas no IP privado. Caso contrário, se você deseja se conectar ao servidor por uma rede pública, configure o servidor MySQL para escutar em todos os endereços IP da máquina.
Para fazer isso, você precisa editar o arquivo de configuração do MySQL e adicionar ou alterar o valor da opção de
bind-address
. Você pode definir um único endereço IP e intervalos de IP. Se o endereço for
0.0.0.0
, o servidor MySQL aceita conexões em todas as interfaces IPv4 do host. Se você tiver o IPv6 configurado no seu sistema, em vez de
0.0.0.0
, use
::
.
A localização do arquivo de configuração do MySQL difere dependendo da distribuição. No Ubuntu e Debian, o arquivo está localizado em
/etc/mysql/mysql.conf.d/mysqld.cnf
, enquanto nas distribuições baseadas no Red Hat, como o CentOS, o arquivo está localizado em
/etc/my.cnf
.
Abra o arquivo com seu editor de texto:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Procure uma linha que comece com
bind-address
e defina seu valor como o endereço IP no qual um servidor MySQL deve escutar.
Por padrão, o valor é definido como
127.0.0.1
(escuta apenas no host local).
Neste exemplo, definiremos o servidor MySQL para escutar em todas as interfaces IPv4 alterando o valor para
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Se houver uma linha que contenha
skip-networking
, exclua-a ou comente-a adicionando
#
no início da linha.
No MySQL 8.0 e superior, a diretiva de
bind-address
pode não estar presente. Nesse caso, adicione-o sob o
seção.
Uma vez feito, reinicie o serviço MySQL para que as alterações entrem em vigor. Somente usuários raiz ou com privilégios sudo podem reiniciar os serviços.
Para reiniciar o serviço MySQL no Debian ou Ubuntu, digite:
sudo systemctl restart mysql
Nas distribuições baseadas no RedHat, como o CentOS, para reiniciar o serviço, execute:
Concedendo acesso a um usuário de uma máquina remota
A próxima etapa é permitir o acesso ao banco de dados ao usuário remoto.
Efetue login no servidor MySQL como usuário root digitando:
sudo mysql
mysql -uroot -p
De dentro do shell do MySQL, use a instrução
GRANT
para conceder acesso ao usuário remoto.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Onde:
-
database_nameé o nome do banco de dados ao qual o usuário se conectará.user_nameé o nome do usuário do MySQL. endereço_ip é o endereço IP ao qual o usuário se conectará. Use%para permitir que o usuário se conecte a partir de qualquer endereço IP.user_passwordé a senha do usuário.
Por exemplo, para conceder acesso a um banco de dados
dbname
a um usuário chamado
foo
com a senha
my_passwd
de uma máquina cliente com IP
10.8.0.5
, você deve executar:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Configurando o firewall
A última etapa é configurar seu firewall para permitir o tráfego na porta
3306
(porta padrão do MySQL) das máquinas remotas.
Iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Permitir acesso a partir de um endereço IP específico:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW é a ferramenta de firewall padrão no Ubuntu. Para permitir o acesso de qualquer endereço IP na Internet (muito inseguro), execute:
sudo ufw allow 3306/tcp
Permitir acesso a partir de um endereço IP específico:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD é a ferramenta de gerenciamento de firewall padrão no CentOS. Para permitir o acesso de qualquer endereço IP na Internet (muito inseguro), digite:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Para permitir o acesso de um endereço IP específico em uma porta específica, você pode criar uma nova zona FirewallD ou usar uma regra avançada. Bem, crie uma nova zona chamada
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Verificando as alterações
Para verificar se o usuário remoto pode se conectar ao servidor MySQL, execute o seguinte comando:
mysql -u user_name -h mysql_server_ip -p
Onde
user_name
é o nome do usuário ao qual você concedeu acesso e
mysql_server_ip
é o endereço IP do host em que o servidor MySQL é executado.
Se tudo estiver configurado corretamente, você poderá fazer login no servidor MySQL remoto.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
O erro abaixo está indicando que o usuário que você está tentando efetuar login não tem permissões para acessar o servidor MySQL remoto.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Conclusão
O MySQL, o servidor de banco de dados de código aberto mais popular por padrão, escuta as conexões de entrada apenas no host local.
Para permitir conexões remotas com um servidor MySQL, você precisa executar as seguintes etapas:
- Configure o servidor MySQL para ouvir em toda ou em uma interface específica. Conceda acesso ao usuário remoto. Abra a porta MySQL no seu firewall.
Os europeus provavelmente usarão mais dados móveis do que os EUA, diz Cisco Os europeus provavelmente usarão mais dados móveis do que os EUA, de acordo com O tráfego de dados móveis deve dobrar a cada ano nos próximos cinco anos, impulsionado pelos serviços de vídeo, e os usuários mais pesados provavelmente serão europeus, de acordo com a Cisco Systems, que acaba de publicar uma atualização de seus dados. Previsão de tráfego de dados do Visual Networking Index.
Na Europa, mesmo aqueles com os aparelhos de dados mais primitivos, sem uma conexão 3G, provavelmente consumirão mais de 18MB de dados por mês até 2013, mais que o dobro de seus equivalentes nos EUA , de acordo com a Cisco. No ano passado, o número foi de apenas 800KB na Europa, e 400KB nos EUA
Em 30 de abril de 2008, depois que ele foi demitido, Kim usou seu computador doméstico para se conectar para a rede de computadores da Gexa e para um banco de dados contendo informações sobre cerca de 150.000 clientes da Gexa, disse o DOJ. Kim danificou a rede de computadores e o banco de dados no processo, disse o DOJ.
Kim também copiou e salvou em seu computador um arquivo de banco de dados contendo informações pessoais sobre os clientes Gexa, incluindo seus nomes, endereços de faturamento, números da Previdência Social, datas de nascimento e números de carteira de motorista. As ações de Kim causaram uma perda de US $ 100.000 para a Gexa, disse o DOJ.
Usando o aplicativo de desktop remoto no Windows 8 para conexões remotas
Aprenda a configurar e usar o aplicativo de área de trabalho remota no Windows 8 para conexões remotas.







