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
Libérer: 2024-11-02 08:59:02
original
508 Les gens l'ont consulté

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

* 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>
Copier après la connexion

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";
Copier après la connexion
  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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal