Você deve conceder acesso a um usuário de um host remoto no servidor mysql.
Este tutorial irá orientá-lo na configuração de um usuário em seu servidor MySQL para se conectar remotamente.
Os seguintes itens são assumidos:
You have access to login as the 'root' MySQL user
Conteúdo
1 Getting your IP address
2 Granting Access
3 Testing Remotely
4 Notes
Como obter seu endereço IP
Você precisará saber de qual endereço IP está se conectando. Para encontrar isso, você pode ir a um dos seguintes sites:
http://www.ipchicken.com
http://www.whatismyip.com
Conceder acesso
A concessão de acesso a um usuário a partir de um host remoto é bastante simples e pode ser realizada a partir de apenas algumas etapas. Primeiro você precisará fazer o login no seu servidor MySQL como usuário root. Você pode fazer isso digitando o seguinte comando:
mysql -u root -p
Isso irá solicitar sua senha de root do MySQL.
Uma vez que você está logado no MySQL, você precisa emitir o comando GRANT que permitirá o acesso do seu usuário remoto. Neste exemplo, criaremos um novo usuário (fooUser) que terá acesso total ao banco de dados fooDatabase.
Tenha em mente que esta declaração não está completa e precisará de alguns itens alterados. Por favor, altere 1.2.3.4 para o endereço IP que obtivemos acima. Você também precisará alterar my_password com a senha que você gostaria de usar para fooUser.
mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
Esta declaração concederá TODAS as permissões ao usuário recém-criado fooUser com uma senha 'my_password' quando elas se conectarem a partir do endereço IP 1.2.3.4.
Testando remotamente
Agora você pode testar sua conexão remotamente. Você pode acessar seu servidor MySQL de outro servidor Linux:
mysql -u fooUser -p -h 44.55.66.77
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> _
Note que o IP do nosso servidor MySQL é 44.55.66.77 neste exemplo.
Notas
Há algumas coisas a serem observadas ao configurar esses usuários remotos:
Ao configurar usuários, um usuário local não é o mesmo que um usuário remoto. Por exemplo, fooUser @ localhost não é o mesmo que [email protected]. Você terá que duplicar as permissões se quiser que elas tenham as mesmas permissões.
A concessão de todas as permissões não é recomendada. Usar GRANT SELECT, INSERT, UPDATE, DELETE é uma alternativa inteligente para um usuário normal.
Se você deseja conceder apenas a uma tabela específica, você pode usar o banco de dados em vez do banco de dados. Em relação ao nosso exemplo acima, você poderia colocar fooDatabase.fooTable.
Se você estiver usando o iptables, precisará fazer uma entrada no firewall para a porta TCP 3306. Ao criar sua regra de firewall, basta usar o nome 'mysql' para o número da porta.
Fonte: link