如何在.NET中透過SSH.NET連接到遠端MySQL資料庫?

Barbara Streisand
發布: 2024-10-27 12:27:02
原創
387 人瀏覽過

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

透過SSH.NET 從.NET 連接到MySQL

問題:

用戶遇到到的問題當嘗試使用MySQL Connector/NET 和SSH.NET 程式庫的組合透過SSH 從位於遠端伺服器上的MySQL 資料庫檢索資料時,會出現問題。儘管已建立 SSH 連接,但程式碼無法產生資料庫查詢結果。

解決方案:

要解決此問題,設定轉送埠至關重要正確。下面的程式碼提供了一種改進的方法:

<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>
登入後複製

在此更新的程式碼中:

  • SSH 連線建立保持不變。
  • 轉送連接埠配置為將本機連接埠 3306 轉送至本機上的遠端連接埠 3306。這可確保資料庫查詢透過 SSH 隧道路由。
  • 隨後,將在本機連接埠 3306 建立 MySqlConnection,允許應用程式連接到遠端 MySQL 資料庫。
  • 資料庫查詢執行、結果處理和資料顯示均以標準方式處理。

修改後的程式碼有效地連接到資料庫、檢索資料並顯示它,為透過以下方式存取遠端 MySQL 資料庫提供了可靠的機制: .NET 應用程式中的 SSH。

以上是如何在.NET中透過SSH.NET連接到遠端MySQL資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!