problema MySQL vb.net

Iniciado por CH4ØZ, 30 Julio 2010, 04:49 AM

0 Miembros y 1 Visitante están viendo este tema.

CH4ØZ

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 (vbnet) [Seleccionar]

    Imports MySql.Data.MySqlClient
    Dim MySQL_Connection As MySqlConnection

    Public Sub MySQL_Connect(ByVal Host As String, ByVal User As String, ByVal Pass As String, ByVal DB As String)
        If Not MySQL_Connection Is Nothing Then MySQL_Connection.Close()
        Dim MySQL_Str As String
        MySQL_Str = String.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false", Host, User, Pass)
        Try
            MySQL_Connection = New MySqlConnection(MySQL_Str)
            MySQL_Connection.Open()
        Catch ex As Exception
            MsgBox(String.Format("Error al conectar con la DB: {0}", ex.Message))
        End Try
    End Sub


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?
no me juzguen si no me conocen

Shell Root

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?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

CH4ØZ

si pasa que probe 3 MySQL_Str diferentes

los dejo aca, perdon pero me habia olvidado:
Código (vbnet) [Seleccionar]

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

MySQL_Str = String.Format("server={0}; username={1}; pwd={2}; database={3};  pooling=false", Host, User, Pass, DB)//no me acuerdo xD

MySQL_Str = String.Format("DataBase={0}; Data Source={1}; User Id={2}; Password={3}", DB, Host, User, Pass)//codigo de este foro
no me juzguen si no me conocen

Meta

Hola:

Mira en la página 437 de este manual.

Ver manual.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

CH4ØZ

Cita de: Meta en 30 Julio 2010, 14:07 PM
Hola:

Mira en la página 437 de este manual.

Ver manual.

Saludo.

hice lo que decia, que es basicamente lo que ya habia heco, pero sigue saliendo el mismo error =(
no me juzguen si no me conocen

Ari Slash

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

[D4N93R]

Depura linea por línea el código, y ataja la excepción con un try catch, algo así:
Código (csharp) [Seleccionar]

try
{
   //tu c'odigo aca
}
catch (Exception ex)
{

}


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!

CH4ØZ

Cita de: 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
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)

Cita de: 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 (csharp) [Seleccionar]

try
{
   //tu c'odigo aca
}
catch (Exception ex)
{

}


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:

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?
no me juzguen si no me conocen

[D4N93R]

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!

CH4ØZ

Cita de: 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!

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?
no me juzguen si no me conocen