Por default (padrão) o MySQL não permite acesso remoto ao banco de dados, sendo assim essa dica com certeza vai ajudar muitos TI’s que necessitem esse acesso. Então para habilitar siga os seguintes passos:
Como root no terminal do linux digite:
1 – Faça backup do arquivo de configuração do MySQL:
cp -a /etc/mysql/my.cnf /etc/mysql/my.cnf-backup
2 – Agora sim, edite o arquivo my.cnf:
nano /etc/mysql/my.cnf
3 – Altere a seguinte linha..
Antes... bind-address = 127.0.0.1 Depois... bind-address = 0.0.0.0
4 – Reinicie o serviço mysql com:
/etc/init.d/mysql restart
5 – Acesse o mysql com:
mysql --user=root --password=senhadoroot
Então digite o seguinte comando:
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'senhadoroot';
Esse comando é bem explicativo, ele garante (GRANT) todos (ALL) os privilégios de acesso a todos (*.*) os databases do banco, ao (TO) usuário (‘root’) em todas as máquinas (‘%’) usando a senha do usuário root (IDENTIFIED BY ‘suasenha’). Traduzindo em miúdos, você acessa tudo no banco com o usuário root em qualquer máquina remota.
Se quiser dar acesso somente a uma maquina específica troque ‘%’ pelo ip da máquina, por exemplo, dar acesso somente a máquina 192.168.1.123, ficaria assim o comando:
GRANT ALL ON *.* TO 'root'@'192.168.1.123' IDENTIFIED BY 'senhadoroot';
* Onde estiver escrito senhadoroot, troque pela senha do usuário root.
Agora pode testar conectar-se ao banco de outra máquina que você terá acesso.
Testado no Debian 8.04 e MySQL 5.5