PDA

Ver la Versión Completa : No me puedo conectar a equipo remoto con MySQL (para expertos)


aupaneu
31-05-2006, 13:10:58
Wenas.

Estoy realizando un proyecto web en Visual Studio 2005 .NET en el que necesito conectarme a una Base de Datos de MySQL que está en un equipo de mi misma red.
Me descargué el driver MySQL.Data versión 1.0.7 para realizar la conexión.


Imports System.Data
Imports MySql.Data.MySqlClient
Imports MySql.Data

PartialClass _Default
Inherits System.Web.UI.Page
ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load

Dim Conexion As MySqlConnection = New MySqlConnection()
Conexion.ConnectionString = "data source=pc2;database=BD;user id=root;"
Conexion.Open()
...


Pero me salta este error en el Open:
No se ha permitido una petición para enviar o recibir datos ya que el socket no está conectado y no se ha proporcionado ninguna dirección, al realizar el envío en un socket de datagramas por medio de una llamada sendto

He probado lo mismo en el propio servidor de MySQL como localhost en el datasource de la cadena de conexión y así si me funciona. El problema viene cuando lo intento hacer desde otro equipo...

Llevo casi una semana con este tema y hasta ahora nadie a sabido el motivo del error.

Gracias.

Saludos.

Emilio
31-05-2006, 13:13:42
Posiblemente el otro equipo no reconoce "pc2" prueba a ponerle la IP

aupaneu
31-05-2006, 13:20:38
Posiblemente el otro equipo no reconoce "pc2" prueba a ponerle la IP

Gracias por contestar.

Mira, he probado todo esto:

-Poniendo la IP en vez del nombre
resultado: el mismo
-Poniendole el numero de socket a la connectionstring
resultado: el mismo
-Me descargué el MYSQLDRIVERSC para intentar conectarme
resultado: un error similar
-Poner todos los permisos para todos los usuarios en el servidor de MySQL
resultado: el mismo
-Comprobar que todos los firewall estén desconectados en el servidor
resultado: el mismo
-Descargándome un proyecto de windows en internet para establecer la conexión, en la que se te pedía: Nombre del equipo remoto(pc2),usuario(root),Base de datos(BD) y contraseña(vacio).
resultado:¿a que no lo adivinas?

y creo que me dejo unas cuantas pruebas.

Emilio
31-05-2006, 13:31:32
Pues entonces lo que se me ocurre es que el usuario root no tiene acceso fuera de localhost, crea un usuario con contraseña dale permisos y a ver que pasa.

aupaneu
31-05-2006, 13:38:31
Ya hice la prueba de crear un usuario root con todos permisos (también fuera del localhost), aunque sin contraseña. No dió resultado.

Por cierto, por que dices que le ponga contraseña?

Saludos y gracias

Emilio
31-05-2006, 13:49:20
joer está duro el tema no

¿te reponde un ping pc2? si no te responde colola la siguiente línea en tu fichero C:\WINDOWS\system32\drivers\etc\hosts

192.168.x.x[tabulador]pc2

Ya sabes cambias las x por lo que corresponda y [tabulador]por un tabulador.

Digo lo de poner contraseña porque generalmente el usuario root sólo tiene permisos desde localhost, por tanto yo probaria con

User: pepe
Pass: pepa

Y le daría permisos '%' es decir desde el exterior de la máquina

Edito: y asegurate de que tienes abierto el puerto 3306, o el que estés usando para MySQL

Maury Manosalva
31-05-2006, 21:07:21
Hola, yo tengo un programita que hace este tipo de conexiones hecho en .NET, si quieres puedes ver mi perfil y contactarme por MSN y te lo paso..estamos en contacto.

Maury

aupaneu
01-06-2006, 08:32:51
Hola, yo tengo un programita que hace este tipo de conexiones hecho en .NET
Maury
Si, de hecho ya me bajé un programa en .NET que te hacía la conexión a MySQL, pero mesale el mismo mensaje de error.

Al hacer el ping a pc2 me responde.
También he creado un usuario con contraseña y tampoco me funciona.
¿¿¿Como se hace para comprobar si tengo el puerto 3306 abierto??? digo porque estoy convencido que es por algún rollo de puertos...

Gracias por contestar.

Maury Manosalva
01-06-2006, 15:17:43
Instale ODBC de MySQL en la maquina cliente y por herramientas adiminitrativas, ODBC Administrator intente hacer la conexion, prueba con esto a ver que te resulta.

Maury

aupaneu
02-06-2006, 10:54:06
No funciona.
Le pego de ostias al ordenador???

Casimiro Notevi
02-06-2006, 11:03:17
No funciona.
Le pego de ostias al ordenador???

¿y qué culpa tiene la pobre máquina? :D

aupaneu
02-06-2006, 11:09:51
Tienes razón.
Le doy de leches a Bill Gates???:D

Casimiro Notevi
02-06-2006, 12:19:12
Tienes razón.
Le doy de leches a Bill Gates???:D

sí, sí, sí !!! :D :D :D

aupaneu
02-06-2006, 12:57:51
Bueno ofrezco 3000 Euros y un viaje para 2 semanas y 2 personas a Brasil con todos los gastos pagados.

aupaneu
02-06-2006, 14:47:56
Si no habrá que avisar a la FBI...

aupaneu
05-06-2006, 08:56:43
Como ya ultima opción he instalado el ODBC del mysql, pero me da un error.
Esto es lo que he hecho después de instalarlo:

Dentro del administrador de orígenes y datos de ODBC, entro en la pestaña "DNS de sistema". Hago click en "Agregar". Elijo la opción "MySQL ODBC 3.51 Driver".
Después relleno los campos:

Data source name-> myodbc
Description-> (vacio)
Server-> 192.x.x.x
User->root
Password->(vacio)
Database->bd_php

Depués hago click en el botón "Test", pero me sale un mensaje de error:
Request returned with SQL_ERROR.
En "Diagnostics" pone:
[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on '192.x.x.x' (10061)

Gracias de antemano.
Saludos.

Maury Manosalva
05-06-2006, 18:45:42
Hola yo tuve el mismo problema con esto, lo consulte en la ayuda de MySQL y es algo con el usuario, otra cosa que tienes que mirar es el firewall de windows o habilitar en excepciones el puerto 3306 para que puedas conectar.. verifica y dejame consultar como lo hice.. en el manual en la parte de usuarios.

aupaneu
06-06-2006, 08:40:10
Gracias por contestar!!

Hola yo tuve el mismo problema con esto, lo consulte en la ayuda de MySQL y es algo con el usuario, ...
No entiendo bien lo que quieres decir.
... otra cosa que tienes que mirar es el firewall de windows o habilitar en excepciones el puerto 3306 para que puedas conectar.
Tanto el firewall de windows como el del panda antivirus están desabilitados en ambos equipos (cliente y servidor), por tanto no tengo necesidad de abrir ningún puerto...no?.
Además añado que desde el servidor de MySQL si que se ha podido conectar a este equipo (a una base de datos de SQL Server).
Vamos, que al intentar conectarme del PC "A"(el mio) al PC "B"(servidor mysql) da el error que os comento.En cambio, para conectar el equipo "B" al equipo "A"(el mio, servidor SQL server) no hay ningún problema...

Saludos