Du skal forbinde MySQL'en til den bundne port på videresendelsen. dvs. til 2222.
Eller endnu mere semantisk korrekt, brug portFwld.BoundPort
. Tilsvarende skal du bruge portFwld.BoundHost
.
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
Bemærk også, at det giver mere mening at henvise til MySQL-værten som "localhost" i stedet for "example.com", da værtsnavnet er løst på serversiden. Og når du er på serversiden, vil du typisk ikke oprette forbindelse til "example.com", men til en "localhost".
var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306);
Og selvfølgelig skal du holde SSH-sessionen åben, mens du har brug for tunnelen. Så du skal oprette forbindelse til DB'en inden for using
blokere:
using (var client = new SshClient(connectionInfo))
{
...
client.Connect();
...
portFwld.Start();
...
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}