c# – 使用SSH.NET库与MySQL建立SSH连接

通过使用C#与MySQL数据库的SSH连接,我获得了使用此库进行连接的链接.

这是图书馆的LINK,你会发现这很有趣,因为你不需要手动打开SSH频道.

这是一个非常详细的库,有很多功能,但我想要做的很简单.我只想在每次要写入数据库时​​打开SSH通道.

当我在搜索提供的源代码时,我找到了可以在TestSshCommand.cs中找到的代码的这一部分,我想我可以将这部分用于我的连接但是我需要你的帮助才能使它工作,因为我有我的连接字符串我不知道如何连接所有它.

码:

public void Test_Execute_SingleCommand()
        {
            using (var client = new SshClient(Resources.HOST,Resources.USERNAME,Resources.PASSWORD))
            {
                client.Connect();
                var result = ExecuteTestCommand(client);
                client.Disconnect();

                Assert.IsTrue(result);
            }

我连接到非SSH通道的代码是:

con.ConnectionString = ConfigurationManager.ConnectionStrings["Con2"].ConnectionString;
            con.Open();
            cmd = new MySqlCommand("SELECT COUNT(*) FROM " + ConfigSettings.ReadSetting("main"),con);

     //...... more of the code

那么如何将此代码与上面的代码结合起来,以便它可以先打开一个SSH通道然后执行我的查询?

我需要将我的代码放入连接和断开连接功能吗?

还有一个想法我在引用中添加.dll文件,我必须说没有任何导入工作.那么有人可以下载库并尝试这个简单的代码来查看引用是否适用于您的项目,以便每个人(很多)可以为他们未来的项目提供有效的解决方案?

编辑:

这是我以后尝试做的代码.我的SSH连接现在只需将两者结合起来就可以了.

问题是我需要在我的电脑上本地拥有一个数据库,并且需要连接到服务器.因此,端口转发将不起作用,因为somone在论坛上说我无法移植,而mysql已经有端口用于运行

using (var client = new SshClient("cpanel****","******","******"))
          {
            client.Connect();
            con = new MySqlConnection(GetConnectionString());
            con.Open();
            cmd = new MySqlCommand(String.Format("insert into {0} values (null,?Parname,?Parname2,?Parname3,?Parname4,?Parname5,?Parname6,?Parname7);",ConfigSettings.ReadSetting("main")),con);
            cmd.Parameters.Add("?Parname",MySqlDbType.Double).Value = Math.Round(deciLat,5);
            // ... more parameters
            cmd.ExecuteNonQuery();
            client.Disconnect();
           }
最佳答案
您需要使用SSH连接设置端口转发…

基本上建立一个SSH连接,侦听localhost上的端口3306并将其转发到MySQL数据库服务器……

在MySQL数据库的连接字符串中,您需要将部分服务器= …更改为server = localhost,而SSH连接需要转到MySQL数据库服务器的IP.

如果您无法转发端口3306,您可以使用任何您想要的端口但是您需要更改另外的端口=连接字符串的一部分…有关具有不同端口的连接字符串的示例,请参阅here …仍然是SSH连接目标3306但在这种情况下侦听localhost上的不同端口…

下面是一些带有源代码的工作示例(虽然不使用SSH.NET,因为我不使用SSH.NET但是这应该让你开始使用IMO):

> http://georgelantz.com/2007/09/10/access-mysql-through-ssh-tunnel-in-a-windows-net-application/
> http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/(这只是如何从命令行使用本地SSH客户端进行设置的一个选项)

相关文章

navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...
文章浏览阅读488次。恢复步骤概要备份frm、ibd文件如果mysql...
文章浏览阅读225次。当MySQL单表记录数过大时,增删改查性能...
文章浏览阅读1.5k次。Mysql创建、删除用户MySql中添加用户,新...
MySQL是一种开源的关系型数据库管理系统,被广泛应用于各类应...