首頁 >資料庫 >mysql教程 >如何使用 SSH.NET 程式庫從 .NET 連接到遠端 MySQL 資料庫並檢索資料?

如何使用 SSH.NET 程式庫從 .NET 連接到遠端 MySQL 資料庫並檢索資料?

Barbara Streisand
Barbara Streisand原創
2024-10-29 18:49:08902瀏覽

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

使用SSH.NET 庫從.NET 連接到MySQL

理解目標

目標是在網頁( .NET/C#) 和透過SSH連接的遠端MySQL 資料庫。

程式碼分析和故障排除

您提供的程式碼使用正確的憑證和連接埠設定透過 SSH 成功連接到 MySQL Workbench。但是,它無法從遠端伺服器檢索資料。

修訂方法

以下程式碼解決了該問題,並允許您連接到遠端MySQL 資料庫並擷取資料:

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

說明

  • 此程式碼建立到遠端伺服器的SSH 連線。
  • 然後將連接埠(在本例中為連接埠 3306)轉送到本機,啟用與 MySQL 資料庫的通訊。
  • 使用轉送的連接埠和適當的資料庫憑證建立 MySqlConnection 物件。
  • 執行 MySqlCommand 物件以從指定表格擷取資料。
  • 檢索到的資料將顯示在控制台中。

以上是如何使用 SSH.NET 程式庫從 .NET 連接到遠端 MySQL 資料庫並檢索資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn