Vous devez connecter le MySQL au port lié de la redirection. C'est à dire. au 2222.
Ou même plus sémantiquement correct, utilisez portFwld.BoundPort
. De manière équivalente, utilisez portFwld.BoundHost
.
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
Notez également qu'il est plus logique de se référer à l'hôte MySQL en tant que "localhost", plutôt que "example.com", car le nom d'hôte est résolu côté serveur. Et lorsque vous êtes côté serveur, vous ne vous connectez généralement pas à "example.com", mais à un "localhost".
var portFwld = new ForwardedPortLocal(IPAddress.Loopback.ToString(), 2222, "localhost", 3306);
Et bien sûr, vous devez garder la session SSH ouverte pendant que vous avez besoin du tunnel. Vous devez donc vous connecter à la base de données dans le using
bloquer :
using (var client = new SshClient(connectionInfo))
{
...
client.Connect();
...
portFwld.Start();
...
DBConnect dbConnect = new DBConnect(portFwld.BoundHost, "database", "username", "password", portFwld.BoundPort);
}