Heim > Datenbank > MySQL-Tutorial > Hauptteil

Im Folgenden finden Sie mehrere englische Frage- und Antworttitel, die zum Inhalt des Artikels passen: * Warum kann ich über SSH.NET keine Daten aus einer MySQL-Datenbank abrufen? * Fehlerbehebung bei MySQL-Verbindungsproblemen mit SSH.NET: Eine Fallstudie * So stellen Sie eine korrekte Verbindung zu einem Rem her

Mary-Kate Olsen
Freigeben: 2024-11-02 08:59:02
Original
415 Leute haben es durchsucht

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

* 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

Verbindung zu MySQL von .NET über die SSH.NET-Bibliothek

Problem:

An Die ASP.NET/C#-Webseite versucht, eine MySQL-Datenbank auf einem Remote-Server über eine SSH-Verbindung mithilfe der Bibliotheken Renci.SshNet und mysql-connector-net abzufragen. Der Code ruft jedoch keine Daten aus der Datenbank ab.

Codeausschnitt:

Der C#-Code stellte Versuche bereit, eine SSH-Verbindung herzustellen, einen Port weiterzuleiten usw Stellen Sie dann eine Verbindung zur MySQL-Datenbank her. Es können jedoch keine Daten aus der Datenbank abgerufen werden.

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

Lösung:

Um das Problem zu beheben, können die folgenden Änderungen am Code vorgenommen werden:

  1. Die Verbindungszeichenfolge, die zum Herstellen einer Verbindung zur MySQL-Datenbank verwendet wird, weist eine falsche Syntax auf. Ändern Sie die Verbindungszeichenfolge wie folgt:
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.AllowBatch = true;
connBuilder.Server = "portal.RemoteServer.edu";
connBuilder.Port = 3306;
connBuilder.UserID = "RemoteServerUsername";
connBuilder.Password = "RemoteServerPassword";
connBuilder.Database = "DatabaseName";
Nach dem Login kopieren
  1. Die SSH-Verbindung wurde nicht ordnungsgemäß hergestellt. Stellen Sie sicher, dass die SSH-Verbindungsparameter korrekt sind und dass der Client erfolgreich eine Verbindung zum Remote-Server herstellt.

Geänderter Code:

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

Das obige ist der detaillierte Inhalt vonIm Folgenden finden Sie mehrere englische Frage- und Antworttitel, die zum Inhalt des Artikels passen: * Warum kann ich über SSH.NET keine Daten aus einer MySQL-Datenbank abrufen? * Fehlerbehebung bei MySQL-Verbindungsproblemen mit SSH.NET: Eine Fallstudie * So stellen Sie eine korrekte Verbindung zu einem Rem 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