Heim > Datenbank > MySQL-Tutorial > 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
Freigeben: 2024-10-27 12:27:02
Original
500 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage