以下に、記事の内容と一致する英語の質問と回答のタイトルをいくつか示します。 * SSH.NET 経由で MySQL データベースからデータを取得できないのはなぜですか? * SSH.NET での MySQL 接続問題のトラブルシューティング: ケーススタディ * レムへの正しい接続方法

Mary-Kate Olsen
リリース: 2024-11-02 08:59:02
オリジナル
415 人が閲覧しました

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

* 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

SSH.NET ライブラリを使用した .NET から MySQL への接続

問題:

ASP.NET/C# Web ページは、Renci.SshNet および mysql-connector-net ライブラリを使用して、SSH 接続経由でリモート サーバー上の MySQL データベースにクエリを実行しようとしています。ただし、コードはデータベースからデータを取得していません。

コード スニペット:

提供された C# コードは、SSH 接続の確立、ポートの転送、および次に、MySQL データベースに接続します。ただし、データベースからのデータの取得は失敗します。

<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>
ログイン後にコピー

解決策:

この問題を解決するには、コードに次の変更を加えることができます。

  1. MySQL データベースへの接続に使用される接続文字列の構文が正しくありません。接続文字列を次のように変更します:
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
connBuilder.AllowBatch = true;
connBuilder.Server = "portal.RemoteServer.edu";
connBuilder.Port = 3306;
connBuilder.UserID = "RemoteServerUsername";
connBuilder.Password = "RemoteServerPassword";
connBuilder.Database = "DatabaseName";
ログイン後にコピー
  1. SSH 接続が正しく確立されていません。 SSH 接続パラメータが正しいこと、およびクライアントがリモート サーバーに正常に接続していることを確認してください。

修正コード:

<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>
ログイン後にコピー

以上が以下に、記事の内容と一致する英語の質問と回答のタイトルをいくつか示します。 * SSH.NET 経由で MySQL データベースからデータを取得できないのはなぜですか? * SSH.NET での MySQL 接続問題のトラブルシューティング: ケーススタディ * レムへの正しい接続方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート