Das Herstellen einer Verbindung zu einer MySQL-Datenbank, die auf einem Remote-Linux-Computer gehostet wird, über SSH mithilfe von PHP-Funktionen kann eine Herausforderung sein. Der Fehler „mysqli_connect() erwartet, dass Parameter 6 eine Zeichenfolge ist, Ressource angegeben“ kann auftreten, wenn der bereitgestellte Code verwendet wird.
Der Code versucht, die Funktion mysqli_connect() zu verwenden Stellen Sie über einen SSH-Tunnel eine Verbindung zur Datenbank her. Allerdings erwartet die Funktion mysqli_connect() einen String als sechsten Parameter (der den Tunnel angibt), wohingegen die Funktion ssh2_tunnel() eine Ressource zurückgibt.
Zu lösen Um dieses Problem zu lösen, richten Sie einen SSH-Tunnel zu Ihrem MySQL-Datenbankserver ein. Eine effektive Methode ist die Verwendung eines Jumpbox-Proxys für Sicherheitsverbesserungen. Bei diesem Ansatz wird mithilfe des SSH-Clients ein lokaler Portweiterleitungstunnel erstellt, wodurch effektiv ein sicherer Kanal zwischen Ihrem lokalen Computer und dem Datenbankserver erstellt wird.
Verwendung Befehlszeilentools (SSH-Tunnel-Setup):
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Herstellen einer Verbindung zur Datenbank:
<code class="php">$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");</code>
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie behebe ich ein Problem mit dem Parameter „mysqli_connect()' beim Herstellen einer Verbindung zu MySQL über SSH mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!