Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: CH4ØZ en 30 Julio 2010, 04:49 am



Título: problema MySQL vb.net
Publicado por: CH4ØZ en 30 Julio 2010, 04:49 am
bueno estuve leyendo sobre como conectar MySQL con .net y termine haciendo esta funcion para conectar mi programa a la Db de MySQL:

Código
  1.    Imports MySql.Data.MySqlClient
  2.    Dim MySQL_Connection As MySqlConnection
  3.  
  4.    Public Sub MySQL_Connect(ByVal Host As String, ByVal User As String, ByVal Pass As String, ByVal DB As String)
  5.        If Not MySQL_Connection Is Nothing Then MySQL_Connection.Close()
  6.        Dim MySQL_Str As String
  7.        MySQL_Str = String.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false", Host, User, Pass)
  8.        Try
  9.            MySQL_Connection = New MySqlConnection(MySQL_Str)
  10.            MySQL_Connection.Open()
  11.        Catch ex As Exception
  12.            MsgBox(String.Format("Error al conectar con la DB: {0}", ex.Message))
  13.        End Try
  14.    End Sub
  15.  

el problema con esta funcion, es que no logro que se conecte mi programa con la DB. Salta el siguiente error: "Error al conectar con la DB: Unable to connect to any of the specified MySQLhosts."

alguien tiene alguna idea de como puedo solucionar esto?


Título: Re: problema MySQL vb.net
Publicado por: Shell Root en 30 Julio 2010, 05:07 am
El procedimiento que acabas de crear, pide como parámetro la DB y no la usas en ningún momento xD. Que valores les estas dando a los parámetros del procedimiento?


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 30 Julio 2010, 05:39 am
si pasa que probe 3 MySQL_Str diferentes

los dejo aca, perdon pero me habia olvidado:
Código
  1. MySQL_Str = String.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false", Host, User, Pass)// este lo saque de un ejemplo de MySQL
  2.  
  3. MySQL_Str = String.Format("server={0}; username={1}; pwd={2}; database={3};  pooling=false", Host, User, Pass, DB)//no me acuerdo xD
  4.  
  5. MySQL_Str = String.Format("DataBase={0}; Data Source={1}; User Id={2}; Password={3}", DB, Host, User, Pass)//codigo de este foro
  6.  


Título: Re: problema MySQL vb.net
Publicado por: Meta en 30 Julio 2010, 14:07 pm
Hola:

Mira en la página 437 de este manual.

Ver manual. (http://electronica-pic.blogspot.com/2009/06/servidor-casero-apache-php-mysql.html)

Saludo.


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 30 Julio 2010, 21:12 pm
Hola:

Mira en la página 437 de este manual.

Ver manual. (http://electronica-pic.blogspot.com/2009/06/servidor-casero-apache-php-mysql.html)

Saludo.

hice lo que decia, que es basicamente lo que ya habia heco, pero sigue saliendo el mismo error =(


Título: Re: problema MySQL vb.net
Publicado por: Ari Slash en 30 Julio 2010, 21:31 pm
porque no haces el mysql_str directo como cadena en vez de darle ese formato
a parte le has colocado valores a esas variables Host, User, Pass, DB?

mysqldrivercs.dll?

saludos


Título: Re: problema MySQL vb.net
Publicado por: [D4N93R] en 30 Julio 2010, 21:42 pm
Depura linea por línea el código, y ataja la excepción con un try catch, algo así:
Código
  1. try
  2. {
  3.   //tu c'odigo aca
  4. }
  5. catch (Exception ex)
  6. {
  7.  
  8. }
  9.  

Cuando llegues a la línea donde está el catch, inspecciona la varialble ex, y revisa si tiene algo en el inner exception, y si el inner exception tiene y así, posiblemente te arroje un poco más de info sobre el error..

Esa info la posteas acá junto con el call stack..

Saludos!


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 30 Julio 2010, 22:41 pm
porque no haces el mysql_str directo como cadena en vez de darle ese formato
a parte le has colocado valores a esas variables Host, User, Pass, DB?

mysqldrivercs.dll?

saludos
es lo mismo la forma en la cual defina el contenido de MySQL_Str, sale el mismo error. Y si les di valores a las variables, uso Mysql.Data.dll (referencia e Import MySQL.Data.MySqlClient)

Depura linea por línea el código, y ataja la excepción con un try catch, algo así:
Código
  1. try
  2. {
  3.   //tu c'odigo aca
  4. }
  5. catch (Exception ex)
  6. {
  7.  
  8. }
  9.  

Cuando llegues a la línea donde está el catch, inspecciona la varialble ex, y revisa si tiene algo en el inner exception, y si el inner exception tiene y así, posiblemente te arroje un poco más de info sobre el error..

Esa info la posteas acá junto con el call stack..

Saludos!
lo del try ya estaba hecho,

excepcion:
Código:
ex.Menssage:
Unable to connect to any of the specified MySQL hosts.

ex.InnerException:
System.Net.Sockets.SocketException: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 127.0.0.1:3306
   en System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   en MySql.Data.Common.StreamCreator.CreateSocketStream(IPAddress ip, Boolean unix)
   en MySql.Data.Common.StreamCreator.GetStream(UInt32 timeout)
   en MySql.Data.MySqlClient.NativeDriver.Open()
puede ser que el problema no sea del codigo?
 


Título: Re: problema MySQL vb.net
Publicado por: [D4N93R] en 30 Julio 2010, 22:45 pm
Exacto, el problema es el mysql..

" No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 127.0.0.1:3306"

Revisa lo siguiente:

  • Primero que el puerto 3306 esté abierto
  • Usa un cliente de MySql a vr si se puede conectar
  • Verifica que la clase MySqlConnection use el mismo puerto que el servidor de Mysql

Por ahora es lo que se me ocurre..

Un saludo!


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 30 Julio 2010, 22:55 pm
Exacto, el problema es el mysql..

" No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión 127.0.0.1:3306"

Revisa lo siguiente:

  • Primero que el puerto 3306 esté abierto
  • Usa un cliente de MySql a vr si se puede conectar
  • Verifica que la clase MySqlConnection use el mismo puerto que el servidor de Mysql

Por ahora es lo que se me ocurre..

Un saludo!

perdon por mi ignorancia pero como hago esto?
"Verifica que la clase MySqlConnection use el mismo puerto que el servidor de Mysql" o sea puedo cambiar el puerto que usa MySQLConnection de alguna forma??? o siempre va a ser el 3306?


Título: Re: problema MySQL vb.net
Publicado por: [D4N93R] en 30 Julio 2010, 23:32 pm
Nunca he usado esa librería que tu estás usando, en teoría debería haber alguna forma de saber que puerto está usando.  No estoy muy seguro. Y en el archivo de Mysql que se llama my.ini puedes saber el puerto en donde está funcionando, aunque no creo que sea este el problema ya que el 3306 es el puerto por defecto, pero revisa  que ese sea el que están usando los dos, tanto la librería como el server.


Título: Re: problema MySQL vb.net
Publicado por: BlackZeroX en 31 Julio 2010, 03:05 am
haber que te parece es un modulo de clase ya configurado para MySQL.

http://foro.elhacker.net/net/ado_y_vbnet-t300702.0.html;msg1491070#msg1491070


Dulces Lunas!¡.


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 31 Julio 2010, 03:43 am
solucionado, el problema estaba en que el puerto mysql era el 3308, cuando lo cambie funciono a la perfeccion. gracias por su ayuda.


Título: Re: problema MySQL vb.net
Publicado por: seba123neo en 31 Julio 2010, 06:36 am
porque te conectas con esa libreria? si te podes conectar directamente con las librerias del .NET


Título: Re: problema MySQL vb.net
Publicado por: CH4ØZ en 31 Julio 2010, 06:53 am
porque te conectas con esa libreria? si te podes conectar directamente con las librerias del .NET

porque cuando empeze a leer por google buscando MySQL y .net encontre muchos ejemplos usando esta libreria o System.Data.odbc, y como al usar odbc no terminaba de entender como funcionaba y lograr la conexión, decidi usar esta libreria.