Acceder a BD externa

Tengo una web en server1 (el servidor web), es decir que el código php para conectarse a las BD esta allí, pero los datos están en el server2 (datos. No-ip.info).. Entonces si en mysql_connect pongo localhost me intentara buscar las BD en el server1 y lo que yo quiero hacer es que las busque en el server2, es decir que el server2 actúe como un servidor de base de datos distinto al servidor web.
En resumen quiero decirle al mysql que esta en el server1 que busque las BD en el server2..
Ambos tienen el mysql instalado, pero no quiero poner las BD en el server1 por motivos de seguridad y porque ademas en el server1 solo tengo permiso para agregar tablas a la BD, no tengo los permisos para administrar usuarios o crear otras BD.
Como verán el server2 es una PC que esta conectada por LAN a un equipo con banda ancha, con la utilidad de no-ip.com permito que sea accesible desde internet usando una ip que no es fija. Por ende no puedo poner en mysql_connect la ip porque es variable
Espero que puedas ayudarme.
Saludos.

1 Respuesta

Respuesta
1
Ahora bien, ese equipo (policer.no-ip.info) ¿Cómo se resuelve su IP?... ademas, más importante que el Can't connect to mySQL on .. es el texto que sigue a ese error, indicando EL POR QUE no se puede conectar (cosas como; host not found, user guest can't connect to db, y muchos otros códigos de error)...
Otra cosa, las conexiones vía hostname y sin usar IP requieren que mysql resuelva las direcciones usando la función *nix gethostbyaddress, usaste phpmyadmin para crearlo pero no veo que le hayas garantizado acceso sobre la DB especifica que quieres acceder...
master no me funciona
Probé poniendo
$host="policer.no-ip.info";
if (!($link= mysql_connect($host,'guest','guest')))
Y en el phpMyAdmin de policer.no-ip.info
Puse
Servidor 168.96.132.60
Usuario guest
Contraseña Si
privilegios Select Grant
pero me sigue dando lo mismo
Can't connect to MySQL server on 'policer.no-ip.info'
Me parece que es otra cosa, como si el webservr no viera el policer.no-ip.info.
Pero yo si lo veo desde el explorador...
Te comento también que en no-ip lo tengo configurado así
Hostname: policer.no-ip.info
Host Type: Port 80 Redirect
La solución implica el sustituir en la función mysql_connect o mysql_pconnect el valor de host "localhost" por el valor de servidor (en tu caso) "datos.no-ip.info"...
Claro, en tu servidor mysql destino debes "garantizar" el acceso desde el primer host (server1) al segundo host...
Es decir, por defecto tienes en mysql el usuario root, que solo permite conexiones locales (localhost)...
En tu caso, debes ejecutar en "server2" la siguiente instrucción (o si tienes algún asistente visual como el mysql_administrator, crear un usuario y garantizarle el acceso desde el host "server1"):
GRANT ALL PRIVILGES ON nombre_database.* TO usuario@host_o_IP IDENTIFIED by 'password';
Como verás, si deseas crear un usuario llamado "lola" y darle permiso de acceso desde el server1, la sección TO queda:
lola@server1
Si te sabes el IP de server1, queda:
lola@IP
Donde dice by 'password', va la contraseña que quieres asignarle a lola, por ejemplo:
By 'lolita'
En un ejemplo general, si la base de datos se llama "misistema", la instrucción SQL se verá como:
GRANT ALL PRIVILGES ON misistema.* TO lola@server1 IDENTIFIED by 'lolita';

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas