Die Verbindung zu einer Remote-Datenbank über SSH bietet eine sichere und effiziente Möglichkeit Mittel des Datenzugriffs. SSH dient als verschlüsselter Kanal, über den Ihre MySQL-Abfragen übertragen werden, und schützt vertrauliche Informationen vor dem Abfangen.
Um den SSH-Tunnel einzurichten, verwenden Sie den Befehl ssh mit dem Schalter -L um die lokale Portweiterleitung anzugeben. Dieser Schalter leitet den Datenverkehr von einem angegebenen lokalen Port über SSH zur Remote-IP-Adresse und zum Remote-Port des Datenbankservers um.
Der folgende Befehl richtet beispielsweise einen Tunnel vom lokalen Port 3307 zum Datenbankserver um 10.3.1.55 ein: 3306 über den SSH-Proxy unter ssh-jumpbox.com:
Nachdem der Tunnel eingerichtet ist, konfigurieren Sie Ihre PHP-Anwendung so, dass sie über den lokalen Port eine Verbindung zur Datenbank herstellt. Dazu müssen Sie „127.0.0.1:3307“ als Host-Parameter in Ihrer MySQL-Verbindungsfunktion angeben, wie im folgenden Beispiel zu sehen ist:
Diese Verbindungszeichenfolge weist MySQL darauf hin, den lokalen Port 3307 zu verwenden, was auch der Fall ist über den SSH-Tunnel an den Datenbankserver weitergeleitet werden.
Der Fehler „mysqli_connect() erwartet, dass Parameter 6 eine Zeichenfolge ist, Ressource angegeben“ bei Verwendung von mysqli_connect weist auf eine Nichtübereinstimmung in den Funktionsparametern hin. Stellen Sie sicher, dass der fünfte Parameter (der die Tunnelressource sein sollte) eine Zeichenfolge ist, die die Details der Ressourcenverbindung enthält, und nicht die Ressource selbst.
Das obige ist der detaillierte Inhalt vonWie kann ich über einen SSH-Tunnel in PHP eine sichere Verbindung zu einer MySQL-Datenbank herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!