Maison  >  Article  >  base de données  >  Comment se connecter à une base de données MySQL distante via SSH.NET dans .NET ?

Comment se connecter à une base de données MySQL distante via SSH.NET dans .NET ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 12:27:02388parcourir

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

Connexion à MySQL depuis .NET via SSH.NET

Problème :

Les utilisateurs rencontrent Problèmes lors de la tentative de récupération de données d'une base de données MySQL située sur un serveur distant via SSH à l'aide d'une combinaison des bibliothèques MySQL Connector/NET et SSH.NET. Bien qu'il ait établi une connexion SSH, le code ne parvient pas à produire des résultats à partir des requêtes de base de données.

Solution :

Pour résoudre ce problème, il est crucial de configurer le port transféré correctement. Le code ci-dessous propose une approche affinée :

<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>

Dans ce code mis à jour :

  • L'établissement de la connexion SSH reste inchangé.
  • Le port redirigé est configuré pour transférez le port local 3306 vers le port distant 3306 sur localhost. Cela garantit que les requêtes de base de données sont acheminées via le tunnel SSH.
  • Par la suite, une MySqlConnection est établie sur le port local 3306, permettant à l'application de se connecter à la base de données MySQL distante.
  • Exécution des requêtes de base de données , le traitement des résultats et l'affichage des données sont traités de manière standard.

Ce code révisé se connecte efficacement à la base de données, récupère les données et les affiche, fournissant un mécanisme fiable pour accéder à une base de données MySQL distante via SSH dans les applications .NET.

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