Établir une connexion à une base de données MySQL hébergée sur une machine Linux distante via SSH à l'aide des fonctions PHP peut être difficile. L'erreur "mysqli_connect() s'attend à ce que le paramètre 6 soit une chaîne, ressource donnée" peut se produire lors de l'utilisation du code fourni.
Le code tente d'utiliser la fonction mysqli_connect() pour connectez-vous à la base de données via un tunnel SSH. Cependant, la fonction mysqli_connect() attend une chaîne comme sixième paramètre (indiquant le tunnel), tandis que la fonction ssh2_tunnel() renvoie une ressource.
Pour résoudre ce problème, configurez un tunnel SSH vers votre serveur de base de données MySQL. Une méthode efficace consiste à utiliser un proxy Jumpbox pour améliorer la sécurité. Cette approche consiste à créer un tunnel de redirection de port local à l'aide du client SSH, créant ainsi un canal sécurisé entre votre machine locale et le serveur de base de données.
Utilisation Outils de ligne de commande (configuration du tunnel SSH) :
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Connexion à la base de données :
<code class="php">$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");</code>
Considérations supplémentaires :
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!