[C con Clase] Error 10061 con Mysql

Steven R. Davidson vze266ft en verizon.net
Mar Feb 26 10:07:54 CET 2008


Hola Antonio,

Antonio Escalante wrote:

> Saludos,
>  
> Estoy teniendo problemas a la hora de conectarme a un servidor (no 
> solo a mi propio pc sino a  cualera) con Mysql.
>  
> El problema viene al llamar a la funcion mysql_real_connect. Mientras 
> que la cadena "localhost" hace de server no hay problema alguno, el 
> problema viene cuando le paso como parametro una IP, es ahi cuando 
> irremediablemente me genera el error 10061 haga lo que haga incluso si 
> es mi propia ip.
>  
> Tengo el puerto 3306 abierto en el firewall y en el router. El servicio 
> siempre esta en marcha, la linea con el bind-address he probado a 
> comentarla y a ponerla a 0.0.0.0 pero no ha servido de nada. Incluso con 
> el sql express 2005 activando la opcion de aceptar conexiones entrantes 
> de la red tambien me dio error.
>  
> Yo ya no se que hacer, he probado de todo no ha servido de nada. Os pido 
> por favor si alguien ha tenido el mismo problema y me pudiera ayudar.
>  

Debes comprobar que el usuario tiene permiso para acceder al servidor a 
través del "huésped" indicado. Usando la herramienta "mysql.exe", que 
trae MySQL, averigua esta información en la tabla "user" de la base de 
datos "mysql". Por ejemplo, como administrador o superusuario (o quizá 
"root"), escribirías,

mysql> select host,user from mysql.user;

Deberías tener algo como lo siguiente:

+-----------+---------+
| host      | user    |
+-----------+---------+
| %         | antonio |
| localhost | root    |
+-----------+---------+

Si no es así, entonces sólo te puedes conectar como "antonio" desde 
"localhost", porque posiblemente tengas algo como esto:

+-----------+---------+
| host      | user    |
+-----------+---------+
| localhost | antonio |
| localhost | root    |
+-----------+---------+

Para cambiar el valor de "host", requieres actualizar la tabla. Esto sería,

mysql> update mysql.user set host='%' where user='antonio';

Para estar seguros que el servidor haya actualizado la tabla, haremos un 
"despeje" de la siguiente manera:

mysql> flush tables;


Ahora intenta ejecutar tu programa para ver si acepta la otra IP que 
quieres usar. Huelga decir que indicando el comodín '%' para el 
parámetro "host" podría suponer un riesgo de seguridad, pero si lo 
requieres, adelante.


Espero que esto te arregle el problema.

Steven







Más información sobre la lista de distribución Cconclase