O acesso ao sistema de banco de dados remotamente e extremamente essencial para qualquer aplicação que rode em modo cliente servidor. Por isso este poste tem o intuito de demonstrar como pode ser realizada a liberação de acesso através do Banco de Dados MySQL.
Neste tutorial estarei demonstrando como funciona a liberação de permissão a partir de um banco de dados MySQL instalado em um servidor LINUX. A distribuição utilizada e o Ubuntu Server 12.04.01 LTS.
Tutorial:
1) Acesse seu linux através do Shell, você pode utilizar o próprio console do Linux ou se preferir acessar de outra maquina utilizando um software emulador de terminal, um dos mais utilizados e o PuTTY.
2) Com o usuário root (sudo) edite o arquivo /etc/mysql/my.cnf
(Para realizar edição de arquivos existe várias formas no Linux, um editor que gosto de usar e já vem nativo no Ubuntu e o “nano” mais existem vários, fica a sua escolha. Caso tenha dificuldades em editar arquivos no Linux, através do console, existe um programa chamado WinSCP, este programa nada mais é do que um cliente SFTP que trabalha na porta SSH, você pode utiliza-lo para acessar sua arquitetura Lunix e editar o arquivo desejado.
Encontre o parâmetro “bind-address” verifique que ele esta com o seguinte valor:
bind-address = 0.0.0.0
Altere o valor para o IP de seu servidor no qual esta conectado e que roda o banco de dados.
Exemplo:
bind-adress = 192.168.0.8
Salve o arquivo e reinicie o serviço MySQL:
sudo /etc/init.d/mysql restart
3) Antes de realizar a primeira tentativa de acesso ao banco de dados remotamente, verifique se a porta relacionada ao MySQL esta liberado no Firewall caso o utilize. Para verificar qual porta seu MySQL esta utilizando acesse /etc/mysql/my.cnf e verifique o parâmetro “port”.
4) Através do console Linux execute o seguinte comando para chamar o console do MySQL:
mysql -u root -p
Antes de efetuarmos a permissão devemos entender como funciona o comando que se encarregará de realizar tais atribuições:
O Sistema MySQL trabalha com as seguintes permissões:
Manipulação de Dados:
SELECT: Somente Leitura
INSERT: Inserção de Dados
UPDATE: Atualização de Dados
DELETE: Remoção de Dados
Manipulação de Tabelas
CREATE: Criação de novas Tabelas/Bases.
ALTER: Modificação de Tabelas/Colunas.
DROP: Remoção de Tabelas/Bases.
a) Para definirmos as devidas permissões a um usuário utilizamos o comando GRANT, ex.:
GRANT <permissao> ON <base>.<tabela> TO '<user>'@'localhost' IDENTIFIED BY '<senha>' WITH GRANT OPTION;
b) Para adicionar permissão de leitura, inserção e modificação:
GRANT select, insert, update ON agenda.* TO 'rafael'@'%' WITH GRANT OPTION;
c) E para visualizar as permissões que acabamos de aplica usamos o comando:
SHOW GRANTS FOR 'rafael'@'%';
d) Para definirmos todas as permissões para um usuário e o tornar DBA(Administrador) de sua base de dados podemos utilizar o parâmetro ALL PRIVILEGES em permissões, ex.:
GRANT ALL PRIVILEGES ON agenda.* TO 'emerson'@'%' WITH GRANT OPTION;
Sintese:
grant all privileges on *.* to '[usuario]'@'%' identified by '[senha]';
Comando:
GRANT ALL PRIVILEGES ON *.* TO 'rafael'@'%' IDENTIFIED BY '1234';
Se o acesso for feito por programas que trabalham com o sistema de password antigo do MySQL, como o “DBDesigner”, ainda na console do MySQL, rode o comando:
set password for '[usuario]'@'%' = old_password('[senha]');
Feito estes procedimentos você conseguirá utilizar o acesso ao MySQL de forma remota.
Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.
Att,
Rafael Oliveira
SysAdmin
Fontes Utilizadas:
http://blog.gaudencio.net.br/2013/08/atribuindo-permissoes-para-usuario-mysql.html