首页  >  文章  >  数据库  >  如何使用 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

理解目标

目标是在网页( .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