É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), alors 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 implique la création d'un tunnel de redirection de port local à l'aide du client SSH, créant ainsi un canal sécurisé entre votre ordinateur local 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 :
$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");
Considérations supplémentaires :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3