Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Habilitar acesso remoto ao banco de dados MySQL


Normalmente, o acesso remoto ao servidor de banco de dados MySQL é desabilitado por motivos de segurança. No entanto, algum tempo você precisa fornecer acesso remoto ao servidor de banco de dados MySQL de casa ou de um servidor web. Você pode seguir estas etapas para habilitá-lo.

Etapa 1:faça login usando SSH (se o servidor estiver fora do seu ambiente ou intranet)


Primeiro, faça login por ssh no servidor de banco de dados MySQL remoto do Windows usando PuTTy ou do Linux usando SSH

Etapa 2:Edite o arquivo my.cnf


Uma vez conectado, você precisa editar o arquivo de configuração do servidor MySQL my.cnf usando um editor de texto como o vi:
  • No Debian Linux arquivo está localizado em /etc/mysql/my.cnf localização.
  • No Red Hat Linux/Fedora/Centos Linux arquivo está localizado em /etc/my.cnf localização.

Para editar /etc/my.cnf, execute:
# vi /etc/my.cnf
  • No Windows , o arquivo my.ini está localizado em C:\Program Files\MySQL\MySQL Server X.Y (X.Y é o número da versão do servidor MySQL)

Para Windows, abra o arquivo my.ini no bloco de notas

Etapa 3:Uma vez que o arquivo é aberto, localize a linha que diz o seguinte

[mysqld]

Certifique-se de que a rede de salto de linha esteja comentada (ou remova a linha) e adicione a seguinte linha
bind-address=YOUR-SERVER-IP

Por exemplo, se o IP do seu servidor MySQL for 173.234.21.12, o bloco inteiro terá a seguinte aparência:
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 173.234.21.12
# skip-networking
....

Onde,
  • endereço de ligação :endereço IP para vincular.
  • saltar rede :Não escute conexões TCP/IP. Toda interação com o mysqld deve ser feita via sockets Unix. Essa opção é altamente recomendada para sistemas em que apenas solicitações locais são permitidas. Como você precisa permitir a conexão remota, esta linha deve ser removida de my.cnf ou comentada.

Etapa 4:salve e feche o arquivo


No Debian / Ubuntu Linux, digite o seguinte comando para reiniciar o servidor mysql:
# /etc/init.d/mysql restart

No RHEL / CentOS / Fedora / Scientific Linux, digite o seguinte comando para reiniciar o servidor mysql:
# /etc/init.d/mysqld restart

No Windows, abra o prompt de comando como Administrador e digite
net stop MySQL
net start MySQL

Etapa 5:conceder acesso ao endereço IP remoto

Conceder acesso a um novo banco de dados


Se você deseja adicionar um novo banco de dados chamado foo para barra de usuário e IP remoto 162.72.20.23, você precisa digitar os seguintes comandos no prompt do mysql:
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';

Conceder acesso a um banco de dados existente


Vamos supor que você esteja sempre fazendo conexão de um IP remoto chamado 162.72.20.23 para um banco de dados chamado webdb para o usuário webadmin. Para conceder acesso a este endereço IP para o banco de dados existente, digite o seguinte comando no prompt do mysql:
mysql> update db set Host='162.72.20.23' where Db='webdb';
mysql> update user set Host='162.72.20.23' where user='webadmin';

Etapa 6:Logout do MySQL


Digite o comando exit para sair do mysql:
mysql> exit

Etapa 7:abra a porta 3306


Uma regra iptables de amostra para abrir o firewall iptables do Linux
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

OU permita apenas a conexão remota do seu servidor web localizado em 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT

OU permita apenas a conexão remota de sua sub-rede lan 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Por fim, salve todas as regras (comando específico do RHEL / CentOS):
# service iptables save

No Windows, vá para Painel de Controle> Firewall do Windows> Adicionar regra de entrada para a porta 3306

Etapa 8:testar o acesso remoto ao banco de dados MySQL


No seu sistema remoto ou na sua área de trabalho, digite o seguinte comando:
$ mysql -u webadmin –h 173.234.21.12 –p

No Windows, execute o programa de linha de comando MySQL e faça login como administrador digitando o seguinte comando na pasta raiz do MySQL (por exemplo, Arquivos de Programas\MySQL\MySQL Server 5.5\bin):
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p

Onde,