Foros del Web » Programando para Internet » PHP »

Conexion BD en servidor externo

Estas en el tema de Conexion BD en servidor externo en el foro de PHP en Foros del Web. Bueno soy novato y este paso nunca lo he dado, hasta ahora he trabajado en local con apache y ahora quiero pasar mi aplicación a ...
  #1 (permalink)  
Antiguo 04/11/2008, 04:36
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 0
Conexion BD en servidor externo

Bueno soy novato y este paso nunca lo he dado, hasta ahora he trabajado en local con apache y ahora quiero pasar mi aplicación a un servidor.

Según tengo entendido, quieren que la base de datos este en un servidor dedicado y la aplicacion estará en otro servidor en una cuenta multidominio (ya que seran varias web las que accederán).

Quiero saber que tengo que cambiar en los archivos php para que estos conecten con la base de datos en el servidor dedicado. (también, saber como sería si estubiese en el mismo).

My archivo de conexion es el siguiente:

Código PHP:
function Conectarse()
{
    
$username="localhost";
   if (!(
$link=mysql_connect("localhost","root","")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("g_buscador",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;


acceso:


Código PHP:
include("conex.php");
$link=Conectarse(); 
y las consultas asi:

Código PHP:
$consulta=("select campo from tabla where condiciones",$link); 

while(
$row=mysql_fetch_array($result)) {.......



Os pongo también las consultas y demás para preguntaros de paso como se optimizar la función a la base de datos. Como cambiarían las consultas de las base de datos y su lectura (he leido algo de libreria adodb y tal)...Esto es más por aprender a realizar las cosas bien.

La pregunta principal es como se conecta a la base de datos que estará en un servidor (en principio creo que el van asignar uno dedicado) y los archivos php en otro servidor en una cuenta multidominio (si puede ser en principio con la funcion conectar que tengo).

Espero haberme explicado lo mejor posible
  #2 (permalink)  
Antiguo 04/11/2008, 04:40
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Conexion BD en servidor externo

Para conectarte a un servidor MySQL necesitas saber el host del servidor (Si trabajas en local, es localhost), el usuario y la contraseña de acceso. Todos esos datos debe dártelos tu proveedor.

Y por último, en la consulta que pones, where condiciones no te produce ningún error? Qué utilidad tiene?
ahaha ya entendí

Saludos,
  #3 (permalink)  
Antiguo 04/11/2008, 07:09
Avatar de unreal4u  
Fecha de Ingreso: octubre-2008
Mensajes: 72
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Conexion BD en servidor externo

por lo general hago conexiones de la siguiente manera:
Código PHP:
<?php
include_once('conf.php');

if (!isset(
$g_link)) { $g_link false; }

function 
DBConecta()
 {
  global 
$g_link;
  if( 
$g_link ) return $g_link;
  
$g_link mysql_connect(DBHOST,DBUSER,DBPASS) or die('Oops... corran en circulos! No me pude conectar a la base de datos!' );
  
mysql_select_db(DBNAME$g_link) or die('Esa base de datos no existe!');
  return 
$g_link;
 }

function 
DBLimpia()
 {
  global 
$g_link;
  if( 
$g_link != false mysql_close($g_link);
  
$g_link false;
 }
?>
conf.php:
Código PHP:
<?php
defined
('DBNAME')  or define('DBNAME''asdf'); // El nombre de la base de datos
defined('DBUSER')  or define('DBUSER''asdf'); // El nombre del usuario de la base de datos
defined('BDPASS')  or define('DBPASS''asdf'); // La password de la base de datos
defined('DBHOST')  or define('DBHOST''ip_servidor:puerto'); // El host de la base de datos
defined('STYLE')   or define('STYLE''/includes/style.css'); // El estilo a aplicar
defined('MYWIDTH') or define('MYWIDTH''1024'); // El tamaño a la cual se ajustará la página
?>
[lolxdnarf@servidorlinux includes]$
De esta manera, sólo necesito retocar el conf.php para que se adapte a cualquier situación :)
  #4 (permalink)  
Antiguo 06/11/2008, 06:59
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Conexion BD en servidor externo

Cita:
Iniciado por okram Ver Mensaje
Para conectarte a un servidor MySQL necesitas saber el host del servidor (Si trabajas en local, es localhost), el usuario y la contraseña de acceso. Todos esos datos debe dártelos tu proveedor.

Y por último, en la consulta que pones, where condiciones no te produce ningún error? Qué utilidad tiene?
ahaha ya entendí

Saludos,
Relalice lo siguiente:
Os pongo datos ficticios....Voy al servidor donde voy a poner la base de datos con el nombre: "g_buscador", la creo Usuario: pepito Contraseña: dechocolate, una vez dentro cargo los datos mediante archivo txt y todo perfecto. Me voy a "Zona DNS" y copio la ip: 255.255.255



Voy a mi archivo conex.php y lo cambio:

Código PHP:
<?php
function Conectarse()
{
    
$username="255.255.255.255";
   if (!(
$link=mysql_connect("255.255.255.255","pepito","dechocolate")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("g_buscador",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;
}
?>
Me voy al otro servidor y cargo el archivo que acabo de cambiar.
pongo la direccion y me sale lo siguiente:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user: '[email protected]' (Using password: YES) in tal/tal/tal/conex.php on line 5

La linea 5 : if (!($link=mysql_connect("255.255.255.255","pepito", "dechocolate")))
  #5 (permalink)  
Antiguo 06/11/2008, 08:29
Avatar de unreal4u  
Fecha de Ingreso: octubre-2008
Mensajes: 72
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Conexion BD en servidor externo

255.255.255.X es la subred, no la IP de la máquina a la cual te quieres conectar xD

Pregúntale a tu hosting cuál es la dirección del servidor de bases de datos :P

Saludos !!
  #6 (permalink)  
Antiguo 06/11/2008, 09:34
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Conexion BD en servidor externo

Cita:
Iniciado por unreal4u Ver Mensaje
255.255.255.X es la subred, no la IP de la máquina a la cual te quieres conectar xD

Pregúntale a tu hosting cuál es la dirección del servidor de bases de datos :P

Saludos !!

Pero vamos a ver hombre de dios. jejeje ya se que es mascara de subred. Como pepito no es el usuario ni de chocolate la contraseña... e puesto datos ficticios (lo menciona arriba).

A ver si alguien me puede decir que es lo que hago mal, e probado a poner la ip y el nombre del host y con los dos me da el mismo error...

Yo la ip que he cogido es la Única que he visto en el panel de control....En una zona de menu llamada Zona DNS.
  #7 (permalink)  
Antiguo 06/11/2008, 09:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Conexion BD en servidor externo

Cita:
Access denied for user: '[email protected]'
Acceso denegado al usuario pepito, es decir el error es ese, tu usuario y contraseña son incorrectos, no vas a poder hacer mucho sin saber el nombre y usuario correctos.

Saludos.
  #8 (permalink)  
Antiguo 06/11/2008, 09:40
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Conexion BD en servidor externo

Cita:
Iniciado por GatorV Ver Mensaje
Acceso denegado al usuario pepito, es decir el error es ese, tu usuario y contraseña son incorrectos, no vas a poder hacer mucho sin saber el nombre y usuario correctos.

Saludos.
Si he creado creado la base de datos, asi como asignarle el nombre, usuario y contraseña de la misma.

O Es que al ser la petición desde otro servidor hay que dar permisos o algo asi?
  #9 (permalink)  
Antiguo 06/11/2008, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Conexion BD en servidor externo

Claro, si es desde otro servidor tienes que agregar en el access host, el servidor que te quieres conectar en este caso agregar a miami.hostsuardns.com, o si quieres dejarlo abierto usas % como wildcard.

Saludos.
  #10 (permalink)  
Antiguo 06/11/2008, 10:04
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Conexion BD en servidor externo

debes tener habilitado el WildCard % en el servidor MySQL para que se puedan conectar desde la ip de X PC o servidor... de otro modo el eliminara todo intento de conexion externa que no sea localhost o 127.0.0.1 para ello debes habilitar el WildCard y poner o una IP de tu servidor.. o la PC de donde te conectaras..

eso usualmente se hace desde el panel o algun control de hosting y es que estas en un servidor compartido sino lo puedes hacer directamente para ello y que aprendas deverdad a hacer eso puedes leer el siguiente link en ingles el cual te brinda la informacion necesaria para que te informes al respecto.

http://tecfa.unige.ch/guides/mysql/m...on_access.html
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #11 (permalink)  
Antiguo 07/11/2008, 02:39
Avatar de Silko  
Fecha de Ingreso: septiembre-2008
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Conexion BD en servidor externo

Muchas gracias a todos, ya parece que se conecta.
La verdad es que gracias a este foro, he aprendido muchísimo en estos pocos meses. (aunque seguiré dando la coña y posteando dudas jejeje).

Un saludo.
  #12 (permalink)  
Antiguo 07/11/2008, 08:30
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Conexion BD en servidor externo

Para eso estamos.. Me alegra que hayas resuelto tu problema.. exitos.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:29.