ttpdotcom
(usa Ubuntu)
Enviado em 01/10/2010 - 11:07h
Consideração inicial:
Não utiliza o usuário root para acesso remoto.
Entrando no Mysql e selecionando a DB mysql poderemos verificar na tabela user de qual host o usuário poderá ter acesso, conforme exemplo abaixo:
eu@home/eu#mysql -u root -p
Enter password:
Welcome to MySQL monitor.
mysql>use mysql;
Database changed
select user,host from user;
+----------+----------+
| user |host |
+----------+----------+
|root |127.0.0.1 |
...
Neste caso temos apenas o usuário root com permissões no mysql, então vou criar um outro usuário com plenos poderes no mysql.
mysql>grant all privileges on *.* to <usuario>@'%' identified by '<senha>' with grant option;
Query OK, 0 rows affected (0.00 sec)
Claro que <usuario> é para ser substituido pelo nome do usuario e <senha> também!!!
Como eu coloquei *.* estou a dar permissão a este usuário para todas as databases. Suponhamos que queremos que ele tenha apenas acesso à BD XYZ, então em vez de *.* escreveria XYZ
mysql>flush privileges;
Agora de verificarmos de novo a tabela user vamos ver o seguinte:
mysql>select user,host from user;
+----------+----------+
| user |host |
+----------+----------+
|eu |% |
|root |127.0.0.1 |
Ou seja o usuario eu tem acesso de qualquer host. Se voce quiser limitar a algum ip substitua o % pelo ip.
Saindo do mysql teremos de editar o my.cnf do mysql.
Procure a linha bind-address que deverá ter o ip 127.0.0.1 e substitua pelo ip desejado ou no caso de não querer limitação 0.0.0.0
Salve o arquivo e reinicie o mysql
Lembre-se que para acessar remotamente o comando é:
mysql -u eu -p -h <ip do mysql remoto>
Espero ter ajudado...