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?
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.
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.
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!