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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-21 22:27:31958Durchsuche

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]

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

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>

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!

Stellungnahme:
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