C# 如何使用SSH配置MySql网络连接器(在MySql工作台中有一个工作连接)

C# 如何使用SSH配置MySql网络连接器(在MySql工作台中有一个工作连接),c#,mysql,mysql-workbench,mysqlconnection,C#,Mysql,Mysql Workbench,Mysqlconnection,编辑:找到解决方案-详情见下文 我在MySql Workbench中配置了一个连接,工作正常,但是当我在Visual Studio中尝试使用C#进行连接时,连接达到超时。我增加了它(只是为了确定它不是),但没有成功 根据文档,我使用了这样的代码进行测试: var builder = new MySqlConnectionStringBuilder(); builder.UserID = userName; builder.Password = pa

编辑:找到解决方案-详情见下文

我在MySql Workbench中配置了一个连接,工作正常,但是当我在Visual Studio中尝试使用C#进行连接时,连接达到超时。我增加了它(只是为了确定它不是),但没有成功

根据文档,我使用了这样的代码进行测试:

        var builder = new MySqlConnectionStringBuilder();
        builder.UserID = userName;
        builder.Password = password;
        builder.Server = ipAddress;
        builder.SshHostName = sshIpAddress;
        builder.SshUserName = sshUserName;
        builder.SshPassword = sshPassword;
        builder.PersistSecurityInfo = true;
        builder.ConnectionTimeout = 60;
        builder.UseCompression = true;
        using (var connection = new MySqlConnection(builder.ConnectionString))
        {
            connection.Open();
            connection.Close();
        }
我错过了什么?我检查了另一个不需要SSH的数据库,它工作得很好,所以我确信提供者是可以的。事实上(从一个截图中)我不知道如何将“使用压缩协议”和“ssh压缩级别=0”翻译成C代码。它能改变游戏规则吗

以下是工作台配置方式的快照:


编辑:通过使用PuTTy并为隧道设置SSH IP和为预期连接设置DB IP,问题已经解决。然后在VisualStudio中,我可以使用MySqlConnection。明显的区别是,现在我必须提供“localhost”作为DB服务器IP,并在没有SSH的情况下使用它,因此只需要DB的用户名和密码。

尝试更新网络驱动程序:。您选择了SSH的最后一个链接吗?我已经从NuGet获得了最后一个稳定版本,今天下载。在最后一个链接中,我选择了“不要使用远程管理”,它在Workbench中也是这样工作的。您必须检查连接字符串,以查看Workbench使用的是什么驱动程序和c#(builder.ConnectionString)使用的是什么。我不知道MySqlConnectionStringBuilder使用什么驱动程序。