Foros del Web » Programando para Internet » PHP »

Conexión a BBDD externa

Estas en el tema de Conexión a BBDD externa en el foro de PHP en Foros del Web. Muy buenas a todos! espero que me podáis ayudar a resolver un problemilla. Tengo 2 aplicaciones desarrolladas en PHP y cada una está en un ...
  #1 (permalink)  
Antiguo 21/12/2011, 10:55
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Conexión a BBDD externa

Muy buenas a todos! espero que me podáis ayudar a resolver un problemilla.

Tengo 2 aplicaciones desarrolladas en PHP y cada una está en un servidor distinto y cada una con su base de datos en mysql. Necesitamos que una de las aplicaciones pueda tirar de las dos bases de datos, la que está en su servidor y la que está en el servidor externo. ¿es esto posible? ¿y cómo?

Un saludo y gracias por anticipado
  #2 (permalink)  
Antiguo 21/12/2011, 11:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Conexión a BBDD externa

Si es posible, pero hay que configurar MySql para que acepte conexiones remotas

Creo, aunque no estoy seguro que es algo asi
1.Abrir la consola de comandos de tu servidor
2.Editamos el fichero my.conf : vi /etc/mysql/my.conf
3.Buscamos donde pone: bind-address = 127.0.0.1
4.Reemplazamos por: bind-address = 0.0.0.0 (así permitimos todas las máquinas)
5.Importante tener esta línea comentada: #skip-networking
6.Reiniciamos mysql: /etc/init.d/mysql restart
7.Entramos en Mysql y en el usuario que nos interese y dónde pone servidor ponemos %


Pero en un servidor compartido no creo que el administrador haga eso.

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 22/12/2011, 05:56
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Respuesta: Conexión a BBDD externa

Muchas gracias #emprear por la contestación.

Me ha quedado todo claro menos la última línea que no sé exactamente para qué serviría.

Entonces de esta manera podría realizar querys a la base de datos desde una aplicación localizada en un servidor remoto cierto? pero puede esta aplicación conectarse a la base de datos que está en el servidor propio y la que está en servidor ajeno?
Algo como hacer declarar una clase Conexión por cada una de las bases de datos a la que nos queremos conectar:
Código PHP:
Ver original
  1. class ConexionDB {
  2.  
  3.     private $dbHost;
  4.     private $dbName;
  5.     private $dbUser;
  6.     private $dbPass;
  7.     protected $dbLink;
  8.  
  9. /**
  10.  *  Constructor de la Clase ConexionDB
  11. **/
  12.     function __construct($dbName = 'bbddexterna'){
  13.         $this->dbHost   = '100.80.25.3';
  14.         $this->dbUser   = 'root';
  15.         $this->dbPass   = 'root';
  16.         $this->dbName   = $dbName;
  17.        
  18.         $this->dbLink = @mysql_pconnect($this->dbHost, $this->dbUser, $this->dbPass);
  19.        
  20.         if (!$this->dbLink)
  21.             throw new Exception('No se pudo conectar a la Base de Datos');
  22.    
  23.         if (!mysql_select_db($this->dbName,$this->dbLink))
  24.             throw new Exception('No se pudo conectar a la Base de Datos: '.$this->dbName);
  25.  
  26.     }  
  27. }
  28. ?>

Código PHP:
Ver original
  1. class ConexionDB {
  2.  
  3.     private $dbHost;
  4.     private $dbName;
  5.     private $dbUser;
  6.     private $dbPass;
  7.     protected $dbLink;
  8.  
  9. /**
  10.  *  Constructor de la Clase ConexionDB
  11. **/
  12.     function __construct($dbName = 'bbddlocal'){
  13.         $this->dbHost   = 'localhost';
  14.         $this->dbUser   = 'root';
  15.         $this->dbPass   = 'root';
  16.         $this->dbName   = $dbName;
  17.        
  18.         $this->dbLink = @mysql_pconnect($this->dbHost, $this->dbUser, $this->dbPass);
  19.        
  20.         if (!$this->dbLink)
  21.             throw new Exception('No se pudo conectar a la Base de Datos');
  22.    
  23.         if (!mysql_select_db($this->dbName,$this->dbLink))
  24.             throw new Exception('No se pudo conectar a la Base de Datos: '.$this->dbName);
  25.  
  26.     }  
  27.  
  28. }
  29. ?>

gracias y un saludo
  #4 (permalink)  
Antiguo 22/12/2011, 07:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Conexión a BBDD externa

La primera pregunta, es porque la base de datos interna de mysql incluye una tabla usuarios, en esta no solo figura el nombre de user y contraseña, sino que tambien el host al que puede acceder, en este caso % actua como comodin, y no lo limita a localhost
La segunda te la debo, jamás hice eso.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: bbdd, externa, mysql
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:50.