ホームページ  >  記事  >  データベース  >  SSH.NET ライブラリを使用して .NET からリモート MySQL データベースに接続し、データを取得する方法

SSH.NET ライブラリを使用して .NET からリモート MySQL データベースに接続し、データを取得する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 18:49:08825ブラウズ

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

SSH.NET ライブラリを使用して .NET から MySQL に接続する

目的を理解する

目標は、Web ページ ( .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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。