MySQLを転送のバインドされたポートに接続する必要があります。つまり2222へ。
または、さらに意味的に正しい場合は、portFwld.BoundPort
を使用します 。同様に、portFwld.BoundHost
を使用します 。
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
また、ホスト名はサーバー側で解決されるため、MySQLホストを「example.com」ではなく「localhost」と呼ぶ方が理にかなっていることにも注意してください。また、サーバー側では、通常、「example.com」ではなく「localhost」に接続します。
var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306);
そしてもちろん、トンネルが必要な間はSSHセッションを開いたままにしておく必要があります。したがって、using
内でDBに接続する必要があります ブロック:
using (var client = new SshClient(connectionInfo))
{
...
client.Connect();
...
portFwld.Start();
...
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}