Herstellen einer Verbindung zu MySQL von .NET über die SSH.NET-Bibliothek
Das Erstellen von Webanwendungen, die über SSH-Verbindungen auf entfernte MySQL-Datenbanken zugreifen, erfordert die Verwendung von Bibliotheken wie Renci.SshNet.dll und mysql-connector-net-6.9.7. In diesem Artikel wird untersucht, wie Sie Herausforderungen bei der Verbindung mit MySQL mithilfe dieser Bibliotheken überwinden können.
Problem:
Der bereitgestellte C#-Code kann keine Daten aus der MySQL-Datenbank auf der Fernbedienung abrufen Server über eine SSH-Verbindung.
Lösung:
Das Problem liegt in der falschen Verwendung der Server- und Porteinstellungen in der MySQL-Verbindungszeichenfolge. Hier ist die korrigierte Version:
<code class="csharp">MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder(); connBuilder.AllowBatch = true; connBuilder.Server = "portal.RemoteServer.edu"; **// Change the Port to 22 (SSH connection port)** connBuilder.Port = 22; connBuilder.UserID = "LocalHostUserID"; connBuilder.Password = "LocalHostPassword"; connBuilder.Database = "DatabaseName"; // SSH connection details var auth = new PasswordAuthenticationMethod("RemoteServerUsername", "RemoteServerPassword"); ConnectionInfo conInfo = new ConnectionInfo("portal.RemoteServer.edu", "RemoteServerUsername", auth); using (SshClient client = new SshClient(conInfo)) { // ... (rest of the code remains the same) }</code>
Indem Sie den Server auf die SSH-Verbindungsadresse einstellen und den Port auf 22 ändern, wird die Verbindung über SSH hergestellt und nachfolgende Datenbankvorgänge können erfolgreich sein.
Zusätzliche Hinweise:
Im korrigierten Code wird ein ForwardedPortLocal-Objekt für die Portweiterleitung zwischen 3306 (MySQL-Port) auf 127.0.0.1 und 127.0.0.1:22 verwendet. Dadurch kann der lokale MySQL-Client über den SSH-Tunnel an Port 22 eine Verbindung zur Remote-MySQL-Datenbank herstellen.
Die bereitgestellte Lösung geht davon aus, dass der MySQL-Server Port 3306 auf dem Remote-Host überwacht. Wenn Ihr MySQL-Server auf einem anderen Port lauscht, passen Sie den Code unbedingt entsprechend an.
Das obige ist der detaillierte Inhalt vonWarum kann mein C#-Code keine Verbindung zu einer Remote-MySQL-Datenbank über SSH herstellen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!