Pour tenter de se connecter à une base de données MySQL distante en utilisant SSH et ssh2 de PHP bibliothèque, le code fourni rencontre une erreur : "mysqli_connect() s'attend à ce que le paramètre 6 soit une chaîne, ressource donnée." Ce problème survient lorsque le paramètre censé être une chaîne (la ressource du tunnel) est fourni en tant que ressource à la place.
Pour surmonter ce défi , un tunnel SSH sécurisé peut être établi pour se connecter au serveur de base de données MySQL. Ce tunnel agit comme un canal crypté entre le client et la base de données, acheminant toutes les communications via la connexion SSH sécurisée.
Étape 1 : Établir un tunnel SSH utilisant le commutateur « -L ».
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Dans cet exemple, le trafic sur le port local 3307 est transmis au serveur de base de données distant à 10.3.1.55:3306.
Étape 2 : Connectez-vous à la base de données à l'aide du port local.
mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
L'application PHP peut maintenant se connecter à la base de données à l'aide de la connexion transférée SSH.
<code class="php"><?php $smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase"); mysql_select_db("db", $smysql); ?></code>
En mettant en place le tunnel SSH, la connexion à la base de données MySQL distante devient hautement sécurisée. Les données sont échangées via le canal SSH crypté, empêchant tout accès non autorisé.
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!