Maison  >  Article  >  base de données  >  Comment se connecter à une base de données MySQL distante à partir de .NET à l'aide de la bibliothèque SSH.NET et récupérer des données ?

Comment se connecter à une base de données MySQL distante à partir de .NET à l'aide de la bibliothèque SSH.NET et récupérer des données ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 18:49:08825parcourir

How to Connect to a Remote MySQL Database from .NET Using SSH.NET Library and Retrieve Data?

Connexion à MySQL depuis .NET à l'aide de la bibliothèque SSH.NET

Comprendre l'objectif

Le but est d'établir une connexion entre une page Web ( .NET/C#) et une base de données MySQL distante via une connexion SSH.

Analyse du code et dépannage

Le code fourni se connecte avec succès à MySQL Workbench via SSH en utilisant les informations d'identification et la configuration de port correctes. Cependant, il ne parvient pas à récupérer les données du serveur distant.

Approche révisée

Le code suivant résout le problème et vous permet de vous connecter à la base de données MySQL distante et de récupérer des données :

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword"))
{
    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>

Explication

  • Ce code établit une connexion SSH avec le serveur distant.
  • Il transfère ensuite un port (pour cet exemple, le port 3306) vers la machine locale, permettant la communication avec la base de données MySQL.
  • Un objet MySqlConnection est créé à l'aide du port transféré et des informations d'identification de base de données appropriées.
  • Un objet MySqlCommand est exécuté pour récupérer les données de la table spécifiée.
  • Les données récupérées sont ensuite affichées dans la console.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn