[RESOLVIDO]Acessar Mysql Server usando ip ou nome da maquina (C#)

Estou desenvolvendo um pequeno jogo como projeto da faculdade utilizando XNA da plataforma C#.

Preciso de acesso remoto ao meu banco de dados Mysql. Segue codigo de exemplo de como estou acessando o banco para leitura e gravação, somente para testes:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MySql.Data.MySqlClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            getData();
            updateData();
            getData();
        }

        static void getData()
        {
            String conString = "server=localhost;user id=root;password=root;database=pongevodb";
            //String conString = "server=192.168.0.107;user id=root;password=root;database=pongevodb";
            //String conString = "server=Jhonatas-PC;user id=root;password=root;database=pongevodb";
            MySqlConnection con = new MySqlConnection(conString);         
            MySqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "SELECT X, Y FROM BALL";
            //try
            //{
                con.Open();
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e.Message);
            //}

            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader["x"].ToString());
                Console.WriteLine(reader["y"].ToString());
            }
            con.Close();
            Console.ReadLine();
        }

        static void updateData()
        {
            //String conString = "server=Jhonatas-PC;user id=root;password=root;database=pongevodb";
            String conString = "server=Jhonatas-PC;user id=root;password=root;database=pongevodb";
            MySqlConnection con = new MySqlConnection(conString);
            MySqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "UPDATE BALL SET X = 50, Y = 10900";
            
            //try
            //{
                con.Open();
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e.Message);
            //}
            cmd.ExecuteNonQuery();
            con.Close();

        }
    }
}

Quando tento rodar sem definir o server como localhost, ao tentar abrir a conexão, ocorre o seguinte erro (Quando tento pelo ip da maquina, ou pelo nome)

Unable to connect to any of the specified MySQL hosts.

Creio que seja simplesmente problema de privilégio no próprio mysql. Rodei a seguinte linha no prompt:

grant all privileges on . to root@"%.%.%.%" identified by “root”;

Mas mesmo assim nao consigo acessar o banco pelo ip, nem do rodando o codigo do proprio host, e nem de outra maquina. Só funciona com localhost.

O que estou fazendo de errado?

No código do C#, nada. Provavelmente é mesmo problema de configuração do seu banco.

Existe outra configuração necessária no mysql além de definir privilégio?

Que eu me lembre, ele tem uma configuração pra definir quais máquinas remotas poderão acessa-lo. Mas não me lembro de como faz, teria que olhar no manual.

Desliguei o firewall, funfou!

Era o boi na linha. :slight_smile:

É o diabo atentando, irmão!