Maison >base de données >tutoriel mysql >Voici plusieurs titres de questions et réponses en anglais qui correspondent au contenu de l'article : * Pourquoi suis-je incapable de récupérer des données d'une base de données MySQL via SSH.NET ? * Dépannage des problèmes de connexion MySQL avec SSH.NET : une étude de cas * Comment se connecter correctement à un Rem

Voici plusieurs titres de questions et réponses en anglais qui correspondent au contenu de l'article : * Pourquoi suis-je incapable de récupérer des données d'une base de données MySQL via SSH.NET ? * Dépannage des problèmes de connexion MySQL avec SSH.NET : une étude de cas * Comment se connecter correctement à un Rem

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 08:59:02434parcourir

以下是几个符合文章内容的英文问答类标题:

* Why Am I Unable to Retrieve Data from a MySQL Database Through SSH.NET?
* Troubleshooting MySQL Connection Issues with SSH.NET: A Case Study
* How to Correctly Connect to a Remote MySQL Database via SSH.NET in C#
* Why Does My C# C

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

Problème :

Un La page Web ASP.NET/C# tente d'interroger une base de données MySQL sur un serveur distant via une connexion SSH à l'aide des bibliothèques Renci.SshNet et mysql-connector-net. Cependant, le code ne récupère aucune donnée de la base de données.

Extrait de code :

Le code C# fourni tente d'établir une connexion SSH, de transférer un port et puis connectez-vous à la base de données MySQL. Cependant, il ne parvient à récupérer aucune donnée de la base de données.

<code class="csharp">using(var client = new SshClient("ssh server id", "sshuser", "sshpassword")) // establishing ssh connection to server where MySql is hosted
{
    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>

Solution :

Pour résoudre le problème, les modifications suivantes peuvent être apportées au code :

  1. La chaîne de connexion utilisée pour se connecter à la base de données MySQL a une syntaxe incorrecte. Modifiez la chaîne de connexion comme suit :
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.AllowBatch = true;
connBuilder.Server = "portal.RemoteServer.edu";
connBuilder.Port = 3306;
connBuilder.UserID = "RemoteServerUsername";
connBuilder.Password = "RemoteServerPassword";
connBuilder.Database = "DatabaseName";
  1. La connexion SSH n'est pas établie correctement. Assurez-vous que les paramètres de connexion SSH sont corrects et que le client se connecte avec succès au serveur distant.

Code modifié :

<code class="csharp">using(var client = new SshClient("portal.RemoteServer.edu", "RemoteServerUsername", "RemoteServerPassword")) // establishing ssh connection to server where MySql is hosted
{
    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(connBuilder.ConnectionString))
        {
            using (MySqlCommand com = new MySqlCommand("SELECT * FROM Clients", 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>

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