Heim  >  Artikel  >  Datenbank  >  Wie stellt man in .NET über SSH.NET eine Verbindung zu einer Remote-MySQL-Datenbank her?

Wie stellt man in .NET über SSH.NET eine Verbindung zu einer Remote-MySQL-Datenbank her?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 12:27:02388Durchsuche

How to Connect to a Remote MySQL Database via SSH.NET in .NET?

Herstellen einer Verbindung zu MySQL von .NET über SSH.NET

Problem:

Benutzerstoß Schwierigkeiten beim Versuch, Daten aus einer MySQL-Datenbank auf einem Remote-Server über SSH abzurufen, indem eine Kombination aus den Bibliotheken MySQL Connector/NET und SSH.NET verwendet wird. Obwohl eine SSH-Verbindung hergestellt wurde, liefert der Code keine Ergebnisse aus Datenbankabfragen.

Lösung:

Um dieses Problem zu beheben, ist es wichtig, den weitergeleiteten Port zu konfigurieren korrekt. Der folgende Code bietet einen verfeinerten Ansatz:

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword")) // establish SSH connection to server hosting MySQL
{
    client.Connect();
    if (client.IsConnected)
    {
        var portForwarded = new ForwardedPortLocal("127.0.0.1", 3306, "127.0.0.1", 3306);
        client.AddForwardedPort(portForwarded);
        portForwarded.Start();
        using (MySqlConnection con = new MySqlConnection("SERVER=127.0.0.1;PORT=3306;UID=someuser;PASSWORD=somepass;DATABASE=Dbname"))
        {
            using (MySqlCommand com = new MySqlCommand("SELECT * FROM cities", con))
            {
                com.CommandType = CommandType.CommandText;
                DataSet ds = new DataSet();
                MySqlDataAdapter da = new MySqlDataAdapter(com);
                da.Fill(ds);
                foreach (DataRow drow in ds.Tables[0].Rows)
                {
                    Console.WriteLine("From MySql: " + drow[1].ToString());
                }
            }
        }
        client.Disconnect();
    }
    else
    {
        Console.WriteLine("Client cannot be reached...");
    }
}</code>

In diesem aktualisierten Code:

  • Der SSH-Verbindungsaufbau bleibt unverändert.
  • Der weitergeleitete Port ist auf konfiguriert Leiten Sie den lokalen Port 3306 an den Remote-Port 3306 auf localhost weiter. Dadurch wird sichergestellt, dass Datenbankabfragen durch den SSH-Tunnel geleitet werden.
  • Anschließend wird eine MySqlConnection zum lokalen Port 3306 hergestellt, sodass die Anwendung eine Verbindung zur entfernten MySQL-Datenbank herstellen kann.
  • Ausführung der Datenbankabfrage , Ergebnisverarbeitung und Datenanzeige werden standardmäßig gehandhabt.

Dieser überarbeitete Code stellt effektiv eine Verbindung zur Datenbank her, ruft Daten ab und zeigt sie an und bietet so einen zuverlässigen Mechanismus für den Zugriff auf eine entfernte MySQL-Datenbank SSH in .NET-Anwendungen.

Das obige ist der detaillierte Inhalt vonWie stellt man in .NET über SSH.NET eine Verbindung zu einer Remote-MySQL-Datenbank her?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn