Publicidad

Conectar con MySql desde PHP a través del un tunel SSH


Por Alex el 25/10/2021 , Comentar el artículo

Comparte este artículo:      




Es muy normal que nuestro servidor MySql se encuentre protegido y no podamos acceder desde fuera de nuestra red y necesitemos conectarnos por SSh a un servidor en la misma red del MySql para poder acceder .... pero ...


Desde nuestro entorno de desarrollo, quizás en local, en nuestra máquina, podemos acceder remotamente al servidor estableciendo un tunel SSH.

En el ejemplo que voy a poner vamos a suponer que tenemos:

  • Un servidor al que nos conectamos por SSH con la IP 192.168.100.10
  • Un servidro MySql en la IP 192.168.50.50

Para conectarnos desde PHP a través de un tunnel con el servidor MySql tenemos primero que crear el túnel de la siguiente forma:

Shell_exec("ssh -f -L 127.0.0.1:33038:192.168.50.50:3306 root@192.168.100.10 -i /home/netveloper/.ssh/id_rsa");

$db = mysqli_connect("127.0.0.1", "root", "PASSWORD_BBDD", "base_de_datos", 33038);

De esta forma primero creamos el túnel y después conectamos a través del túnel creado y ahora podemos ejecutar una query:

$rows = $db->query( "Select * from posts limit 10")->fetch_all();

print_r ( $rows);

También podemos conectar a través de este túnel con PDO, igual que antes lo primero que haremos es abrir el tunel al servidor que nos dará acceso al MySql

Shell_exec("ssh -f -L 127.0.0.1:33038:192.168.50.50:3306 root@192.168.100.10 -i /home/netveloper/.ssh/id_rsa");

$config = [ 'dsn' => 'mysql:host=127.0.0.1;port=33038;dbname=base_de_datos', 'username' => 'root', 'password' => 'PASSWORD_BBDD', ];
$conn = new PDO( $config['dsn'], $config['username'], $config['password']); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare( "Select * from posts limit 10"); $stmt->execute(); $data = $stmt->fetchAll( PDO::FETCH_ASSOC); $count = $stmt->rowCount(); $stmt->closeCursor();
print_r ( $data);
$conn = null;



Y esto es todo amigos!!!
Saludos
Alex.



Si te ha gustado el artículo compartelo en:      



También puede interesarte:

Instalar Codeigniter 4 y ponerlo en marcha

Instalar Codeigniter 4 y ponerlo en marcha

Por Alex, el 23/05/2022

Curso de creación de una API en PHP

Curso de creación de una API en PHP

Por Alex, el 20/04/2022

Rutas dinámicas en codeigniter 4

Rutas dinámicas en codeigniter 4

Por Alex, el 04/04/2022

Como crear rutas en php

Como crear rutas en php

Por Alex, el 21/03/2022

Clase para leer ficheros de configuración en PHP

Clase para leer ficheros de configuración en PHP

Por Alex, el 09/02/2022

Codeigniter 4 no registra bien las horas en los logs

Codeigniter 4 no registra bien las horas en los logs

Por Alex, el 03/02/2022


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.