Quiero que mi PC con una BD mysql en localhost, sirva de BD para equipos de internet (y de mi red)

Buenas!!

Lo que necesito es conectarme, escribir y leer datos de una BD en MySQL, que esté instalada localmente en mi PC, con servidor Apache, por ejemplo.

La idea es que puedan acceder tanto pc´s que estén en mi propia red, como pc´s que están fuera de la red, en internet. ¿Como hacer esto?
Tengo esa duda porque si la cadena de conexión es algo así...


"Database=nombre-bd;Server=¿IP DE QUÉ?;User Id=usuario;Password=pass;Pooling=false;Convert Zero Datetime=True;Allow Zero Datetime=True; Port=3306"



Investigando, he visto algo de que tengo que crear un NAT (algo así, algo que tengo que configurar en el router) para que los ordenadores que entren desde fuera, sepan acceder a la BD que está en el PC de mi red, pero no tengo ni idea como hacer esto.

He abierto el puerto de MySQL para conexiones remotas en mi router, que es el 3306.

Ayuda por favor.
Has abierto el 3306 para una ip de tu red que supuestamente será el servidor, debes hacer una reserva de esa ip para que el servidor siempre tenga la misma o poner ese equipo como dmz sino puede que el router se la asigne a cualquier otro equipo de la red.
En tu server debes colocar la ip local para que busque el servicio en esa máquina, localhost te vale.
Luego vas a necesitar controlar la ip pública con la que sales a internet para pasarle el vínculo a los que quieran acceder desde fuera de tu red.
Si la IP pública cambia cada cierto tiempo, tendrías que usar un DDNS, como NoIP
http://www.noip.com/
Gracias por las respuestas.

A ver, me hice un dominio de esos noip. Y ahora tengo lo siguiente en la cadena de conexión:

"Database=nombre-bd;Server=midominio.noip;User Id=usuario;Password=pass;Pooling=false;Convert Zero Datetime=True;Allow Zero Datetime=True; Port=3306"


He instalado el programa que te dice la web, y lo tengo encendido en la máquina que ejerce de servidor. En ese programita me sale la ip pública (que es la del router). Pero no sé qué más tengo que hacer. Por supuesto, tengo instalada mi BD en el localhost de esa máquina.

Me aparece este error ahora:

"Host 192.168.1.1 is not allowed to connect to this MySQL Server "

De alguna forma tengo que decirle al router, que cuando alguien intente acceder a midominio.noip o a la IP pública de mi router, este la "transforme" en la IP privada de ese equipo en mi red, no?

O no sé qué puede estar pasando..
Pone que no está permitida la conexión desde esa red, eso lo tienes que habilitar desde MySQL.
luciferfran escribió:Pone que no está permitida la conexión desde esa red, eso lo tienes que habilitar desde MySQL.


Uhm..perdona la ignorancia pero...¿Como hago eso?
que programa has instalado, y esa cadena de conexion de donde es?
Noumaios escribió:que programa has instalado, y esa cadena de conexion de donde es?


Tengo el Appserv, y la cadena de conexión es de un programa en C#, que es de donde quiero acceder a la BD. Ese programa lo ejecutan diferentes máquinas, tanto de mi red como del exterior.

Tengo que hacer lo de modificar el my.cnf o algo así? leí algo de eso, pero no encontré el archivo, modifiqué el my.ini que trae el appserv pero no conseguí hacerlo bien por lo visto.
Si es un paquete como appserv o wamp no deberias tener que tocar nada.
Si has cambiado la ip en el my.ini ahi deberia apuntar a la maquina donde corres el servicio, si es ella misma localhost.
Para las conexiones desde tu misma red debe figurar la ip local donde tienes el server, si tu router es 192.168.1.1 pues sera 192.168.1.algo. Desde fuera de tu red tendrias que usar el dominio noip.
(mensaje borrado)
Asegurate primero que puedes acceder desde otro PC que este en la misma red, para confirmar que no tienes configurado MySQL para acceptar solo conexiones del localhost.
Ten en cuenta que para conexiones remotas debes tener un usuario con permisos para tal, osea debe existir el usuario: usuario@%. El simbolo % indica permiso desde cualquier lugar.
¡Muchas gracias a todos! Ya está resuelto..

Hice primero lo del usuario, para darle % y que pudiera acceder desde cualquier lugar, y seguía sin funcionar.

Decidí entonces desinstalar Appserv y probar con XAMPP, y voilà! ya funciona todo a la perfección. :) :)
11 respuestas