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:

Como configurar virtualhost en nginx

Como configurar virtualhost en nginx

Por Alex, el 05/08/2022

Instalar nginx y configurar PHP en Vagrant y ubuntu

Instalar nginx y configurar PHP en Vagrant y ubuntu

Por Alex, el 03/08/2022

Instalar y configurar nginx y PHP en Ubuntu

Instalar y configurar nginx y PHP en Ubuntu

Por Alex, el 01/08/2022

Layouts en Codeigniter 4

Layouts en Codeigniter 4

Por Alex, el 24/07/2022

Detectar el navegador desde PHP con get_browser

Detectar el navegador desde PHP con get_browser

Por Alex, el 13/07/2022

Paginación de registros en PHP desde MySql

Paginación de registros en PHP desde MySql

Por Alex, el 06/07/2022


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.