如何使用 SSH.NET 库从 .NET 连接到远程 MySQL 数据库并检索数据?

Barbara Streisand
发布: 2024-10-29 18:49:08
原创
824 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!