La connexion à une base de données distante via SSH offre une connexion sécurisée et efficace moyens d’accès aux données. SSH sert de canal crypté par lequel vos requêtes MySQL sont transmises, protégeant les informations sensibles de l'interception.
Pour établir le tunnel SSH, utilisez la commande ssh avec le commutateur -L pour spécifier la redirection de port local. Ce commutateur redirige le trafic d'un port local spécifié vers l'adresse IP et le port distant du serveur de base de données via SSH.
Par exemple, la commande suivante configure un tunnel entre le port local 3307 et le serveur de base de données à l'adresse 10.3.1.55 : 3306 via le proxy SSH sur ssh-jumpbox.com :
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Maintenant que le tunnel est établi, configurez votre application PHP pour qu'elle se connecte à la base de données via le port local. Cela implique de spécifier "127.0.0.1:3307" comme paramètre hôte dans votre fonction de connexion MySQL, comme le montre l'exemple ci-dessous :
$smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase");
Cette chaîne de connexion indique à MySQL d'utiliser le port local 3307, qui être transféré via le tunnel SSH vers le serveur de base de données.
L'erreur "mysqli_connect() s'attend à ce que le paramètre 6 soit une chaîne, ressource donnée" lors de l'utilisation de mysqli_connect indique une incompatibilité dans les paramètres de la fonction. Assurez-vous que le cinquième paramètre (qui doit être la ressource du tunnel) est une chaîne contenant les détails de connexion à la ressource, plutôt que la ressource elle-même.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!