Wie behebe ich den Fehler „mysqli_connect(): Parameter 6 Expected to Be a String, Resource Given' in der PHP-SSH-MySQL-Verbindung?

Patricia Arquette
Freigeben: 2024-10-21 22:27:31
Original
957 Leute haben es durchsucht

How to Resolve

Herstellen einer Verbindung zu einem MySQL-Server über SSH in PHP

Bei einem Versuch, eine Verbindung zu einer entfernten MySQL-Datenbank über SSH und PHPs ssh2 herzustellen In der Bibliothek stößt der bereitgestellte Code auf einen Fehler: „mysqli_connect() erwartet, dass Parameter 6 ein String ist, Ressource angegeben.“ Dieses Problem tritt auf, wenn der Parameter, von dem erwartet wird, dass er eine Zeichenfolge ist (die Tunnelressource), stattdessen als Ressource bereitgestellt wird.

SSH-Tunnellösung

Um diese Herausforderung zu meistern , kann ein sicherer SSH-Tunnel eingerichtet werden, um eine Verbindung zum MySQL-Datenbankserver herzustellen. Dieser Tunnel fungiert als verschlüsselter Kanal zwischen dem Client und der Datenbank und leitet die gesamte Kommunikation über die sichere SSH-Verbindung.

(A) GUI Tools

  • Visual Studio Code: Unterstützt SSH-Tunneling mit Erweiterungen.
  • TablePlus: Bietet integrierte SSH-Tunneling-Funktionalität.
  • PuTTY: Ermöglicht die Einrichtung einer lokalen Portweiterleitung für SSH.

(B) Befehlszeile

Schritt 1: Einrichten einen SSH-Tunnel mit dem Schalter „-L“.

ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Nach dem Login kopieren

In diesem Beispiel wird der Datenverkehr auf dem lokalen Port 3307 an den Remote-Datenbankserver um 10.3.1.55:3306 weitergeleitet.

Schritt 2: Stellen Sie über den lokalen Port eine Verbindung zur Datenbank her.

mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
Nach dem Login kopieren

Die PHP-Anwendung kann sich nun über die SSH-weitergeleitete Verbindung mit der Datenbank verbinden.

<code class="php"><?php
$smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase");
mysql_select_db("db", $smysql);
?></code>
Nach dem Login kopieren

Durch die Einrichtung des SSH-Tunnels wird die Verbindung zur entfernten MySQL-Datenbank hochsicher. Der Datenaustausch erfolgt über den verschlüsselten SSH-Kanal, wodurch unbefugter Zugriff verhindert wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „mysqli_connect(): Parameter 6 Expected to Be a String, Resource Given' in der PHP-SSH-MySQL-Verbindung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!