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), während die Funktion ssh2_tunnel() eine Ressource zurückgibt.
Zu lösen Um dieses Problem zu beheben, 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.
Verwenden Befehlszeilentools (SSH-Tunnel-Setup):
ssh -fNg -L 3307:10.3.1.55:3306 [email protected]
Herstellen einer Verbindung zur Datenbank:
$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");
Zusätzliche Überlegungen:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3