Maison > développement back-end > tutoriel php > Comment résoudre l'erreur « mysqli_connect() : paramètre 6 censé être une chaîne, ressource donnée » dans la connexion PHP SSH MySQL ?

Comment résoudre l'erreur « mysqli_connect() : paramètre 6 censé être une chaîne, ressource donnée » dans la connexion PHP SSH MySQL ?

Patricia Arquette
Libérer: 2024-10-21 22:27:31
original
1084 Les gens l'ont consulté

How to Resolve

Connexion à un serveur MySQL via SSH en PHP

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.

Solution de tunnel SSH

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.

(A) GUI Tools

  • Visual Studio Code : Prend en charge le tunneling SSH avec des extensions.
  • TablePlus : Offre une fonctionnalité de tunneling SSH intégrée.
  • PuTTY : Permet de configurer la redirection de port local pour SSH.

(B) Ligne de commande

Étape 1 : Établir un tunnel SSH utilisant le commutateur « -L ».

ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal