Conexión remota MySQL usando PHP: Ejemplo Completo
Conexión remota MySQL. Para otorgar acceso a una base de datos MySQL desde una ubicación externa agregando un nombre de dominio o una dirección IP a una lista de hosts aceptables para permitir el acceso a la base de datos de forma remota.
Además, si usa una aplicación para administrar su base de datos, deberá agregar la dirección IP desde la cual se realiza la conexión como un host de acceso permitido. Por lo tanto, para proyectos grandes en algunas ocasiones se requieren acceder a múltiples bases de datos en servidores diferentes.
En ese caso, debe de conectarse a la base de datos remota desde otro servidor usando otro tipo de configuración.
Conexión remota mysql usando PHP
Este tutorial explica cómo conectarse a la base de datos MySQL remota usando el lenguaje PHP.
Introducción a la conexión remota MySQL.
En este artículo nos enfocaremos en el Panel de control llamado Cpanel. Para permitir, el acceso remoto y le permitirá acceder a la base de datos MySQL desde otro servidor. Sin embargo, este método es muy útil cuando desea conectar varias bases de datos alojadas en servidores diferentes.
Recordemos que, por razones de seguridad, el acceso remoto al servidor de base de datos MySQL está deshabilitado por defecto en la mayoría de servidores web. Ahora, con este tutorial debemos permitir y/o habilitar el acceso remoto a MySQL para conectar la base de datos desde un servidor diferente al primero.
Ejemplo 01: Supongamos una hipótesis y que la base de datos está alojada en el «Servidor A
» y desea conectarse a esta base de datos desde el «Servidor B
«, para obtener información de sus tablas, etc., usando un script PHP.
El proceso de conexión de base de datos remota seria los siguientes procesos que a continuación detallaremos paso a paso.
1) Primero: Acceder a la cuenta de Cpanel.
Iniciar sesión en la cuenta de cPanel del servidor web contratado, donde está alojada la base de datos MySQL que desea conectar (Servidor A
).
2) Segundo: Acceder al módulo «Base de Datos».
Tenemos que hacer un clic en «MySQL remoto®«, para asignarle los privilegios correspondientes (Servidor A). Veamos la siguiente captura de pantalla.
3) Tercero: En «Añadir anfitrión de acceso».
Aquí, debemos de ingresar la dirección IP del servidor web (Servidor B), desde donde se accederá a la base de datos para obtener información de la base de datos. Ahora, solo queda realizar un clic en «Añadir Anfitrión«.
4) Cuarto: Conexión con la base de datos.
Para conectarse con la base de datos MySQL alojada en otro servidor (Servidor A), usaremos el siguiente código PHP en el (Servidor A).
<?php // Declaramos las variables de conexión $ServerName = "mipagina.com"; $Username = "usermysql"; $Password = "passmysql"; $NameBD = "miDB"; // Creamos la conexión con MySQL $conexion = new mysqli($ServerName, $Username, $Password, $NameBD); // Revisamos la Conexión MySQL if ($conexion->connect_error) { die("Ha fallado la conexión: " . $conexion->connect_error); } // Enviamos un mensaje de conexión correcta echo "Conectado correctamente"; ?>
5) Quinto: Acceder a la información (Tablas).
Ahora, podemos acceder a las tablas de base de datos del servidor remoto. Sin embargo, podemos usar el siguiente script de modo ejemplo en donde nos permitirá mostrar los datos de los alumnos de la tabla alumnos en la base de datos remota en MySQL.
<?php /* Pedimos la información remota */ $consulta= "SELECT id, nombres FROM alumnos"; $resultados = $conexion->query($consulta); if ($resultados->num_rows > 0) { // Salida de la consulta mediante el ciclo WHILE while($registro = $resultados->fetch_assoc()) { echo "Id: " . $registro["id"]. " - Nombres: " . $registro["nombres"]. "<br>"; } } else { // Imprimimos si no hay ningun resultado. echo "0 resultados"; } ?>
A) Mostramos el fichero completo llamado ”consulta.php».
Este fichero contendrá la conexión remota a MySQL y la consulta SQL para mostrar la información de la tabla. Para mostrar todos los resultados de la tabla nos apoyaremos con el ciclo WHILE.
<?php // Declaramos las variables de conexión $ServerName = "mipagina.com"; $Username = "usermysql"; $Password = "passmysql"; $NameBD = "miDB"; // Creamos la conexión con MySQL $conexion = new mysqli($ServerName, $Username, $Password, $NameBD); // Revisamos la Conexión MySQL if ($conexion->connect_error) { die("Ha fallado la conexión: " . $conexion->connect_error); } // Enviamos un mensaje de conexión correcta //echo "Conectado correctamente"; echo "<h2>Resultados desde Servidor Remoto</h2>"; /* Pedimos la información remota */ $consulta= "SELECT id, nombres, apellidos FROM alumnos"; $resultados = $conexion->query($consulta); if ($resultados->num_rows > 0) { // Salida de la consulta mediante el ciclo WHILE while($registro = $resultados->fetch_assoc()) { echo "<b>Id:</b> " . $registro["id"]. " - <strong>Nombres:</strong> " . $registro["nombres"]. " - <strong>Apellidos:</strong> ".$registro["apellidos"]. "<br>"; } } else { // Imprimimos si no hay ningun resultado. echo "0 resultados"; } ?>
Resultados al ejecutar el anterior script PHP en el navegador preferido.
B) Mostramos la base de datos del servidor remoto.
Para este ejemplo hemos trabajado con una base de datos llamado «remoto» y una tabla llamado «alumnos«, a continuación, les dejare unas consultas SQL. Esta consulta se puede ejecutar en el gestor de MySQL llamado PHPMyAdmin.
-- Base de datos: `remoto` -- Estructura de tabla para la tabla `alumnos` CREATE TABLE `alumnos` ( `id` int(11) NOT NULL, `nombres` varchar(100) DEFAULT NULL, `apellidos` varchar(100) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Tabla Alumnos'; -- Volcado de datos para la tabla `alumnos` INSERT INTO `alumnos` (`id`, `nombres`, `apellidos`) VALUES (1, 'JUAN CARLOS', 'FLORES'), (2, 'PEDRO LUIS', 'MOLINA'), (3, 'MARIA ALEJANDRA', 'GARCIA'), (4, 'LUHANA LUNA', 'MONASTERIO'); ALTER TABLE `alumnos` ADD PRIMARY KEY (`id`); ALTER TABLE `alumnos` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
CONCLUSIÓN DE CONEXIÓN REMOTA MYSQL
Como vimos en este artículo, la conexión remota en MySQL es muy sencilla y de esta manera podemos darle la solución a este tipo de inconvenientes.
Espero que esta breve explicación les ayude en sus proyectos web y/o páginas web.
buenas
Mi hosting no tiene o no encuentro el sql remoto.
habria otra opcion de hacerlo?
gracias