none
Conexión aplicaciones en C# con Mysql RRS feed

  • Pregunta

  • Hola a todos, buenas tardes, pues vengo con una pregunta que que quisas es repetida, pero yo no puedo aun solucionar.

    Como dice el titulo tengo una aplicación e c#, todo ok, mientras mi BD esta Local

    los dejo mi código de conexión.

    <configuration>
      <connectionStrings>
        <add name="conecta" connectionString="Server=127.0.0.1;Database=comtelbd; Uid=root; Password=" />
      </connectionStrings>
    </configuration>
    -----------------------------------
    using MySql.Data.MySqlClient;
    using System.Configuration;
    ---------------------
       static MySqlConnection cone;
            public string  Conecta()
            {
              
    //  cone = new MySql.Data.MySqlClient.MySqlConnection("Server=localhost;Database=comtelbd; Uid=root; Password="); //directo
      cone = new MySqlConnection(ConfigurationManager.ConnectionStrings["conecta"].ConnectionString);//con el app.config
                    string m = "";
                    try
                    {
                        cone.Open();
                        m = "1";
                    }
                    catch (Exception)
                    {
                        m = "0";
                    }
                    return m;           
            }


    Pero cuando lo quiero conectar remotamente, no me puedo conectar.(en mi inocencia pienso que solo es cuestion de cambiar la ip).Ya que en mi servidor e creado la BD con el mismo nombre el usuario es el root y no tiene password.

    Cual es el problema! tengo que cambiar algo en el servidor? quizás como e SQL que hay que habilitar para que acepte conexiones remotas.

    Nota:

    • Para realizar mis pruebas he instalado el VMware. en el cual tengo un (Windows server) y un (Windows Xp). he creado un dominio para que el xp se pueda conectar y normal. puedo compartir archivos y todo lo mas entre el xp y el server.
    • Por el momento quiero probar mi aplicación con el Windows server como servidor pero la BD la tengo que implementar en Linux/Centon 5. (cuestion de licencias),y mis aplicaciones en XP, si me pueden ayudar tambien con esto mucho mejor. pero por el momento quisiera que mi aplicación se conecte al server remoto.

     


    Daván Palma C#
    miércoles, 7 de septiembre de 2011 20:49

Respuestas

Todas las respuestas

  • hola

    has validado que el firewall de windows no este bloqueando la ip que utiliza mysql ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 7 de septiembre de 2011 20:55
  • Pues si incluso lo he des habilitado, para hacer la prueba y tampoco se conecta.

    Cual puede ser el error.


    Daván Palma C#
    miércoles, 7 de septiembre de 2011 22:03
  • Hola Daván.

    Te falta al menos el puerto de MySQL que por defecto es el 3306.

    http://www.connectionstrings.com/mysql


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    miércoles, 7 de septiembre de 2011 22:18
  • Hola Daván.

    Te falta al menos el puerto de MySQL que por defecto es el 3306.

    http://www.connectionstrings.com/mysql


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    a ver voy  a probar esta opción. y les cuento como fue.
    Daván Palma C#
    miércoles, 7 de septiembre de 2011 22:21
  • Hola,

    Fijate en esto

        <add name="conecta" connectionString="Server=127.0.0.1;Database=comtelbd; Uid=root; Password=" />

    127.0.0.1 es la maquina local has probado a cambiarla por la dirección ip del servidor.

    Si esto lo has hecho, imagino que Mysql tiene alguna herramienta de cliente, intenta conectar con esta en vez de ejecutar la app c#. Eso posiblmente te dará más información o intenta agregando a Visual studio en el menu "Ver->Explorador de Servidores",  si aqí lo logras esa es tu cadena de conexión.

    Saludos,


    phurtado
    miércoles, 7 de septiembre de 2011 22:24
    Moderador
  • Hola,

    Fijate en esto

     

        <add name="conecta" connectionString="Server=127.0.0.1;Database=comtelbd; Uid=root; Password=" />

    127.0.0.1 es la maquina local has probado a cambiarla por la dirección ip del servidor.

    Si esto lo has hecho, imagino que Mysql tiene alguna herramienta de cliente, intenta conectar con esta en vez de ejecutar la app c#. Eso posiblmente te dará más información o intenta agregando a Visual studio en el menu "Ver->Explorador de Servidores",  si aqí lo logras esa es tu cadena de conexión.

    Saludos,

     


    phurtado

    claro mi cadena es esta 

     <add name="conecta" connectionString="Server=192.168.1.35;port=3306;Database=comtelbd; Uid=userbd; Password=1234" />

     ahora ya agregue el puerto. y lo volvi a instalar y nada.

     


    Daván Palma C#
    miércoles, 7 de septiembre de 2011 22:36
  •  

    Hola de nuevo, se me ocurren las siguientes pruebas.

    • ¿Has probado a hacer ping al servidor remoto?
    • Podrías probar también a instalarte Mysql Workbench y tratar de conectar desde ahí con las mismas credenciales http://wb.mysql.com/ç

     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    miércoles, 7 de septiembre de 2011 22:56
  •  

    Hola de nuevo, se me ocurren las siguientes pruebas.

    • ¿Has probado a hacer ping al servidor remoto?
    • Podrías probar también a instalarte Mysql Workbench y tratar de conectar desde ahí con las mismas credenciales http://wb.mysql.com/ç

     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    Calro, si lees bien la pregunta que he echo ahi en Nota, explico que las PCs si están conectadas, el problema surge con mis aplicaciones.

    a ver voy a probar "Mysql Workbench". aunque ya estoy super cansado, pues estoy en una jodida silla de ruedas y me esta sacando ampollas en el trasero jajajajajajaja.


    Daván Palma C#
    miércoles, 7 de septiembre de 2011 23:14
  • Que tal hay un post similar en donde se comenta algo así y bueno esto es parte de la solución de allí:

     

    private void ConnRemote()
            {
                const string path = "DataSource=5.76.41.21; Database=tester; Uid=Remote; Pwd=remote;"; 
                const string sql = @"select * from remote";
                try
                {
                    MySqlConnection cnn = new MySqlConnection(path);
                    cnn.Open();
    
                    MySqlDataAdapter mda = new MySqlDataAdapter(sql, cnn);
                    DataSet ds = new DataSet();
                    mda.Fill(ds);
                    dg.DataSource = ds.Tables[0];
                }
                catch (Exception ex)
                {
                    MessageBox.Show(@"Algo ando mal por aquí: " + ex.Message);
                }
               
            }
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                ConnRemote();
            }
    

    La ip es la generada por hamachi * la red se llama ForoCSharp y el pass: 0forocsharp1 por si quieres probar el código de aquí dejo claro que tendrás que instalar hamachi en tu equipo y agregar la red que te comento de otra manera no la podrás ver. De igual manera lo puedes hacer con cualquier ip de tu red

    Enlace al foro con el proyecto de ejemplo

     

     


    Compartir es aprender To share is to learn 0 1 2 3 4 5 6 7 8 9 0 Nayarit; México

    • Editado Crack it jueves, 8 de septiembre de 2011 0:07 ip added
    miércoles, 7 de septiembre de 2011 23:53
  • Voy a provar esta ultima opción.y luego me voy descansa. pues ya estoy un poco cansado. mañana veré si esto tiene solución.

    Gracias a todos por su ayuda.


    Daván Palma C#
    miércoles, 7 de septiembre de 2011 23:58
  • En Mysql también debes habilitar la conexión remota.

    Lo puedes hacer como se explica aquí:

    http://www.deambulando.com/2009/01/19/habilitar-conexiones-remotas-en-mysql/

    Estoy seguro que es eso ya que has probado lo del firewall y sigue igual :D. No se te olvide la parte de crear asignar el host % al usuario que deseas se pueda conectar desde otros servidores (El último paso)

     

     


    La tecnologia te envuelve
    jueves, 8 de septiembre de 2011 3:11
  • hola a todos creo que esto ya esta por solucioanarse.

    http://www.lawebdelprogramador.com/foros/MySQL/1284015-Urgente!!!!!!_Conexiones_Remotas_a_servidor_Mysql_con_Aplicaciones_C_.html

    tambien pregunte en este otro foro y me han dado seta respuesta.

    ya he visto mi error, voy a corregirlo y los aviso

    un buen día a todos.


    Daván Palma C#
    jueves, 8 de septiembre de 2011 13:39
  • Ya solucione el problema. este ha sido en el usuario.

    Gracias a todos por su apoyo.


    Daván Palma C#
    jueves, 8 de septiembre de 2011 16:59
  • Hola,

    Imagino que lo que has hecho con esto 

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

    Cuidado que eso es bastante peligroso, has hecho a tu usuario amo y señor de la base de datos y por tanto ante cualquier problema de seguridad te puedes encontrar con otra persona no deseada como amo y señor de tu BB.DD.

     

    Revisa GRANT e intenta hacer a tu usuario lector y escritor solamente, evitaras sentencias del tipo DROP TABLE que elimina una tabla de la BB.DD.

    Todo esto es imaginando que lo has solucionado con ese comando.

    Saludos,


    phurtado
    jueves, 8 de septiembre de 2011 17:43
    Moderador
  • Hola Pedro Hurtado . Gracias por tu recomendacion.

    el usuario lo estoy creando gráficamente. y en servidor he puesto % y e marcado los chek de la primera tablita.

    jueves, 8 de septiembre de 2011 20:18
  • Hola Daván,

    No se ve nada, pasa la imagen por que es imposible leer lo que has pasado.

    Saludos,

     

     


    phurtado
    jueves, 8 de septiembre de 2011 20:21
    Moderador
  • Hola Daván,

    Bien me asusto esta sentencia del otro foro GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

     

    Saludos,


    phurtado
    jueves, 8 de septiembre de 2011 20:25
    Moderador