none
Aplicação C# com MySql na rede

    Question

  • Boa tarde Amigos,

    Fiz uma peguena aplicação C# com banco de dados myslq, com duas tabelas cliente e fornecedores. No meu computador rodou tudo certinho. Após isso compilei a aplicação.

    Depois instalei lei aplicação em um servidor e tambem o Mysql, rodou tudo certinho.

    Porem instalei a aplicaçao em outro computador na rede juntamento com o Mysql ODBC, e eu não consigo conectar com o banco de dados do servidor. Assim que o programa abre a janela da msg de erro de acesso ao banco uma delas é: "nenhuma conexao pode ser feita porque a maquina de destino as recusou ativamente".

    Editei minha string para o endereço de IP do servidor mas mesmo assim não consegui.

    Não sei se é correto mas vi em alguns forum que precisa editar o arquivo "my.cnf", no entanto não localizei o mesmo.

    Eu consigo acessar o banco da maquina cliente quando configuro o MYSQL ODBC, so que eu só consigo acessar quando digito o endereço de IP do servidor no server host.

    Acho que é uma pequena configuração que está faltando eu está errada.

    Segue abaixo uma parte de meu código.

    Por favor me ajudem!!! OBRIGADO A TODOS!

     

    private void SalvarCliente()

    {

    clienteBindingSource.EndEdit();

     

    MySqlConnection con = new MySqlConnection();

    con.ConnectionString =

    @"server=localhost;user id=root;Password=1234;persist security info=True;database=HGF";

     

    MySqlCommand comand = new MySqlCommand();

    comand.CommandText =

    "Select * from cliente";

    comand.Connection = con;

     

    MySqlDataAdapter da = new MySqlDataAdapter();

    da.SelectCommand = comand;

     

     

    MySqlCommandBuilder B = new MySqlCommandBuilder(da);

    da.Update(hgfDataSet.cliente);

    }

    Saturday, February 19, 2011 6:34 PM

Answers

  • Harlley, não existe como, quando você diz "localhost" você está apontando para a máquina na qual esta executando a aplicação, por este motivo as estações não conseguem conectar o banco, pois como esta configurado "localhost", eles estão procurando o banco na própria máquina.

    Agora o que não estou entendendo é que se você for instalar a aplicação no cliente, o mais correto seria antes da instalação o cliente já ter o banco instalado e configurado para rodar sua aplicação.

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Monday, February 21, 2011 2:03 AM

All replies

  • Harlley, pelo que você descreveu isto não parece ser problema no seu aplicativo e nem mesmo no banco, se somente uma máquina não esta conseguindo acesso e só consegue acesso se você digitar o endereço de IP, provavelmente isto é problema de configuração de rede, mas provável que a máquina não esteja com o DNS configurado ou o próprio firewall da máquina esteja bloqueando o acesso.

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Sunday, February 20, 2011 6:03 AM
  • Estevam, com a aplicação c# eu nao consigo acessar o banco de dados pela rede. Com todas as máquinas que instalo. Somente a instalação do servidor acessa.

    Gostaria de saber se tem como eu acessar o banco de dados no servidor com a string de conecção como "localhost"???

    Fiz um teste e mudei o localhost para o IP do servidor na string de conecção, e consegui enxergar o banco de outra máquina. Só que ainda não resolvi meu problema por causa do BindingSource e dataSet.

    Vou tentar explicar, um exemplo, se eu fizer uma aplicação para rodar em um cliente que eu nao sei nem o IP,  como adiciono um BindingSource se eu ainda nao instalei ainda o banco no cliente, ou seja, tenho que fazer a aplicação com acesso ao meu banco, isto é, como "localhost". Porque quando adiciono o BindingSource ele já pede a conecção com o banco, e depois eu não consigo alterar a configuração do BindingSource para o IP do cliente.

    Como faço para resolver isso??

    Temo como conectar com o Mysql na rede com o Server Host como: localhost??? 

    Desde já obrigado!!!

    Harlley

    Monday, February 21, 2011 1:50 AM
  • Harlley, não existe como, quando você diz "localhost" você está apontando para a máquina na qual esta executando a aplicação, por este motivo as estações não conseguem conectar o banco, pois como esta configurado "localhost", eles estão procurando o banco na própria máquina.

    Agora o que não estou entendendo é que se você for instalar a aplicação no cliente, o mais correto seria antes da instalação o cliente já ter o banco instalado e configurado para rodar sua aplicação.

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Monday, February 21, 2011 2:03 AM